public function testGetSubstitutedUrl()
 {
     $view = array('href' => 'http://example.com/gadget.php?foo=bar&mid=__MODULE_ID__');
     $redirectUri = $this->gadgetUrlRenderer->getSubstitutedUrl($this->gadget, $view);
     $parsedUrl = parse_url($redirectUri);
     $queryParameters = array();
     parse_str($parsedUrl['query'], $queryParameters);
     $this->assertEquals('example.com', $parsedUrl['host']);
     $this->assertEquals('/gadget.php', $parsedUrl['path']);
     $this->assertEquals('dynamic-height:opensocial-0.8.js', $queryParameters['libs']);
     $this->assertEquals('en', $queryParameters['lang']);
     $this->assertEquals('US', $queryParameters['country']);
     $this->assertEquals('bar', $queryParameters['foo']);
     $this->assertEquals('value', $queryParameters['up_key']);
     $this->assertEquals('0', $queryParameters['mid']);
 }
 /**
  * Tests GadgetHtmlRenderer->addHeadTags()
  */
 public function testAddHeadTags()
 {
     ob_start();
     $this->gadgetHtmlRenderer->renderGadget($this->gadget, $this->view);
     ob_end_clean();
     $this->gadgetHtmlRenderer->addHeadTags($this->domElement, $this->domDocument);
     // TODO: currently we just test the script part
     $tmpNodeList = $this->domElement->getElementsByTagName("script");
     $scripts = $this->gadgetHtmlRenderer->getJavaScripts();
     $idx = 0;
     foreach ($tmpNodeList as $tmpNode) {
         $script = $scripts[$idx++];
         if ($script['type'] == 'inline') {
             $this->assertEquals('text/javascript', $tmpNode->getAttribute('type'));
             $this->assertEquals(trim($script['content']), trim($tmpNode->nodeValue));
         } else {
             $this->assertEquals($script['content'], $tmpNode->getAttribute('src'));
         }
     }
 }