'; } } /** * GadgetUrlRendererTest test case. */ class GadgetUrlRendererTest extends PHPUnit_Framework_TestCase { /** * @var Gadget */ private $gadget; /** * @var GadgetContext */ private $gadgetContext; /** * @var GadgetHtmlRender */ private $gadgetUrlRenderer; protected function setUp() { parent::setUp(); $this->gadgetContext = new GadgetContext('GADGET'); $gadgetSpecFactory = new MockUrlGadgetFactory($this->gadgetContext, null); $gadgetSpecFactory->fetchGadget = null; $this->gadget = $gadgetSpecFactory->createGadget(); $this->gadgetUrlRenderer = new GadgetUrlRenderer($this->gadgetContext); } public function testGetUrl() { $view = array( 'href' => 'http://example.com/gadget.php', ); $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('value',$queryParameters['up_key']); } 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']); } /** * Cleans up the environment after running a test. */ protected function tearDown() { $this->gadget = null; $this->gadgetContext = null; $this->gadgetUrlRenderer = null; parent::tearDown(); } }