| <?php |
| /** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| * @copyright Copyright (C) 2005-2010 eZ Systems AS. All rights reserved. |
| * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 |
| * @version //autogentag// |
| * @filesource |
| * @package Url |
| * @subpackage Tests |
| */ |
| |
| /** |
| * @package Url |
| * @subpackage Tests |
| */ |
| class ezcUrlTest extends ezcTestCase |
| { |
| public function testPropertiesGet() |
| { |
| $url = new ezcUrl( 'http://user:password@www.example.com:82/index.php/content/view?products=10&mode=print#cat' ); |
| $this->assertEquals( 'http', $url->scheme ); |
| $this->assertEquals( 'www.example.com', $url->host ); |
| $this->assertEquals( 'user', $url->user ); |
| $this->assertEquals( 'password', $url->pass ); |
| $this->assertEquals( 82, $url->port ); |
| $this->assertEquals( array( 'index.php', 'content', 'view' ), $url->path ); |
| $this->assertEquals( array( 'products' => '10', 'mode' => 'print' ), $url->query ); |
| $this->assertEquals( 'cat', $url->fragment ); |
| } |
| |
| public function testPropertiesGetInvalid() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $url->no_such_property = 'data'; |
| $this->fail( 'Expected exception was not thrown' ); |
| } |
| catch ( ezcBasePropertyNotFoundException $e ) |
| { |
| $expected = "No such property name 'no_such_property'."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testPropertiesSet() |
| { |
| $url = new ezcUrl(); |
| $url->scheme = 'http'; |
| $url->user = 'user'; |
| $url->pass = 'pass'; |
| $url->host = 'www.example.com'; |
| $url->port = 82; |
| $url->path = array( 'content', 'view' ); |
| $url->query = array( 'products' => 10, 'mode' => 'print' ); |
| $url->fragment = 'cat'; |
| $expected = "http://user:pass@www.example.com:82/content/view?products=10&mode=print#cat"; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testPropertiesSetInvalid() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $data = $url->no_such_property; |
| $this->fail( 'Expected exception was not thrown' ); |
| } |
| catch ( ezcBasePropertyNotFoundException $e ) |
| { |
| $expected = "No such property name 'no_such_property'."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| |
| try |
| { |
| $url->configuration = "value"; |
| $this->fail( "Expected exception was not thrown." ); |
| } |
| catch ( ezcBaseValueException $e ) |
| { |
| $this->assertEquals( "The value 'value' that you were trying to assign to setting 'configuration' is invalid. Allowed values are: instance of ezcUrlConfiguration.", $e->getMessage() ); |
| } |
| } |
| |
| public function testConstructor() |
| { |
| $url = new ezcUrl( 'http://www.example.com/content/view/products/10/mode/print' ); |
| $expected = 'http://www.example.com/content/view/products/10/mode/print'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testBuildUrl() |
| { |
| $urlStrings = array(); |
| $urlStrings[] = 'http://www.example.com'; |
| $urlStrings[] = 'http://www.example.com/mydir/index.php'; |
| $urlStrings[] = 'http://www.example.com/mydir/index.php/other/stuff#cat'; |
| $urlStrings[] = 'http://www.example.com:82/mydir/index.php/other/stuff#cat'; |
| $urlStrings[] = 'http://user:password@www.example.com:82/mydir/index.php/other/stuff#cat'; |
| $urlStrings[] = 'http://user:password@www.example.com:82/mydir/index.php/other/stuff?me=you&arr[0]=yes&arr[1]=no#cat'; |
| |
| // the dot would have been converted to underscore if using parse_str() to |
| // parse the query part. ezcUrlTools::parseQueryString() is used instead |
| $urlStrings[] = 'http://www.example.com/stuff?openid.nonce=123456'; |
| |
| foreach ( $urlStrings as $urlString ) |
| { |
| $url = new ezcUrl( $urlString ); |
| $this->assertEquals( $urlString, urldecode( $url->buildUrl() ) ); |
| $this->assertEquals( $urlString, urldecode( $url->__toString() ) ); |
| } |
| } |
| |
| public function testBuildUrlWithBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = 'mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testIsRelativeFalse() |
| { |
| $url = new ezcUrl( 'http://www.example.com/blah/index.php' ); |
| $this->assertEquals( false, $url->isRelative() ); |
| } |
| |
| public function testIsRelativeTrue() |
| { |
| $url = new ezcUrl( 'blah/index.php' ); |
| $this->assertEquals( true, $url->isRelative() ); |
| } |
| |
| public function testGetQuery() |
| { |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop?content=view&products=10&mode=print' ); |
| $expected = array( 'content' => 'view', 'products' => '10', 'mode' => 'print' ); |
| $this->assertEquals( $expected, $url->getQuery() ); |
| } |
| |
| public function testGetQueryEmpty() |
| { |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop' ); |
| $expected = array(); |
| $this->assertEquals( $expected, $url->getQuery() ); |
| } |
| |
| public function testSetQuery() |
| { |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop' ); |
| $url->setQuery( array( 'content' => 'view', 'products' => '10', 'mode' => 'print' ) ); |
| $expected = 'http://www.example.com/mydir/shop?content=view&products=10&mode=print'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testGetOrderedParameter() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'branch' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk', $urlCfg ); |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'branch' ) ); |
| } |
| |
| public function testGetOrderedParameterEmpty() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'branch' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $this->assertEquals( null, $url->getParam( 'section' ) ); |
| $this->assertEquals( null, $url->getParam( 'module' ) ); |
| $this->assertEquals( null, $url->getParam( 'view' ) ); |
| $this->assertEquals( null, $url->getParam( 'branch' ) ); |
| } |
| |
| public function testGetOrderedParameterInvalid() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| try |
| { |
| $url->getParam( 'section' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'section' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testGetOrderedParameterNoCfg() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $url->getParam( 'section' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlNoConfigurationException $e ) |
| { |
| $expected = "The parameter 'section' could not be set/get because the url doesn't have a configuration defined."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testSetOrderedParameter() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'branch' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/bugs/components/view/trunk'; |
| $url->setParam( 'section', 'bugs' ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testSetOrderedParameterInvalid() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| try |
| { |
| $url->setParam( 'section', 'value' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'section' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testSetOrderedParameterNoCfg() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $url->setParam( 'section', 'doc' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlNoConfigurationException $e ) |
| { |
| $expected = "The parameter 'section' could not be set/get because the url doesn't have a configuration defined."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testGetUnorderedParameterSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'file' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk/(file)/classtrees_Base.html', $urlCfg ); |
| $this->assertEquals( 'classtrees_Base.html', $url->getParam( 'file' ) ); |
| } |
| |
| public function testGetUnorderedParameterMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'file', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk/(file)/Base/ezcBase.html', $urlCfg ); |
| $this->assertEquals( array( 'Base', 'ezcBase.html' ), $url->getParam( 'file' ) ); |
| } |
| |
| public function testGetUnorderedParameterEmpty() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'file' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk/(file)', $urlCfg ); |
| $this->assertEquals( null, $url->getParam( 'file' ) ); |
| } |
| |
| public function testGetUnorderedParameterInvalid() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| try |
| { |
| $url->getParam( 'file' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testGetUnorderedParameterNoCfg() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $url->getParam( 'file' ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlNoConfigurationException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because the url doesn't have a configuration defined."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testSetUnorderedParameterSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'file' ); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(file)/Base'; |
| $url->setParam( 'file', 'Base' ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testSetUnorderedParameterMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'file', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(file)/Base/ezcBase.html'; |
| $url->setParam( 'file', array( 'Base', 'ezcBase.html' ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testSetUnorderedParameterInvalid() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| try |
| { |
| $url->setParam( 'file', array( 'Base', 'ezcBase.html' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testSetUnorderedParameterNoCfg() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| try |
| { |
| $url->setParam( 'file', array( 'Base', 'ezcBase.html' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlNoConfigurationException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because the url doesn't have a configuration defined."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testRemoveOrderedParameter() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components', $urlCfg ); |
| $this->assertEquals( array( 'section' => 0, 'module' => 1, 'view' => 2 ), $url->configuration->orderedParameters ); |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| |
| $url->configuration->removeOrderedParameter( 'view' ); |
| $this->assertEquals( array( 'section' => 0, 'module' => 1 ), $url->configuration->orderedParameters ); |
| |
| try |
| { |
| $this->assertEquals( null, $url->getParam( 'view' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'view' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| |
| // try removing again - nothing bad should happen |
| $url->configuration->removeOrderedParameter( 'view' ); |
| try |
| { |
| $this->assertEquals( null, $url->getParam( 'view' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'view' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testRemoveUnorderedParameter() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addUnorderedParameter( 'file', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com/doc/components/(file)/Base/ezcBase.html', $urlCfg ); |
| $this->assertEquals( array( 'file' => 2 ), $url->configuration->unorderedParameters ); |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( array( 'Base', 'ezcBase.html' ), $url->getParam( 'file' ) ); |
| |
| $url->configuration->removeUnorderedParameter( 'file' ); |
| $this->assertEquals( array(), $url->configuration->unorderedParameters ); |
| |
| try |
| { |
| $this->assertEquals( null, $url->getParam( 'file' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| |
| // try removing again - nothing bad should happen |
| $url->configuration->removeUnorderedParameter( 'file' ); |
| try |
| { |
| $this->assertEquals( null, $url->getParam( 'file' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcUrlInvalidParameterException $e ) |
| { |
| $expected = "The parameter 'file' could not be set/get because it is not defined in the configuration."; |
| $this->assertEquals( $expected, $e->getMessage() ); |
| } |
| } |
| |
| public function testBuildUrlWithBasedirAppendedSlash() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = 'mydir/shop/'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testBuildUrlWithAbsoluteBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testBuildUrlWithAbsoluteBasedirAppendedSlash() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop/'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| } |
| |
| public function testGetOrderedParameterBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = 'mydir/'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'branch' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/index.php/doc/components/view/trunk', $urlCfg ); |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'branch' ) ); |
| } |
| |
| public function testGetOrderedParameterAbsoluteBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'branch' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/index.php/doc/components/view/trunk', $urlCfg ); |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'branch' ) ); |
| } |
| |
| public function testBuildUrlWithScriptName() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/index.php/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl( true ) ); |
| } |
| |
| public function testBuildUrlWithScriptNameWithoutBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/index.php/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/index.php/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl( true ) ); |
| } |
| |
| public function testBuildUrlWithScriptNameMissingScript() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/doc/components/view/trunk', $urlCfg ); |
| $expected = 'http://www.example.com/mydir/shop/doc/components/view/trunk'; |
| $this->assertEquals( $expected, $url->buildUrl( true ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::SINGLE_ARGUMENT ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/y'; |
| //$this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( 'y', $url->getParam( 'param2' ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y/z", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y/z'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( array( 'y', 'z' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeMultipleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( array( 'y' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeAggregateSingleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y/z", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y/z'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( array( array( 'x' ), array( 'y', 'z' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeAggregateSingleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/(param2)/y'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( array( array( 'x' ), array( 'y' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testGetUnorderedParametersMultipleValuesTypeAggregateMultipleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'section' ); |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addOrderedParameter( 'view' ); |
| $urlCfg->addOrderedParameter( 'content' ); |
| $urlCfg->addUnorderedParameter( 'param1' ); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( "http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/y/(param2)/z", $urlCfg ); |
| $expected = 'http://www.example.com/doc/components/view/trunk/(param1)/a/(param2)/x/y/(param2)/z'; |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'doc', $url->getParam( 'section' ) ); |
| $this->assertEquals( 'components', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'view', $url->getParam( 'view' ) ); |
| $this->assertEquals( 'trunk', $url->getParam( 'content' ) ); |
| $this->assertEquals( 'a', $url->getParam( 'param1' ) ); |
| $this->assertEquals( array( array( 'x', 'y' ), array( 'z' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterSingleArraySingleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'y', $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterSingleArraySingleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y/z'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y', 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'y', $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterSingleArrayMultipleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'z', $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterSingleArrayMultipleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z/t'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z', 't' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( 'z', $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterMultipleArraySingleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( 'y' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterMultipleArraySingleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y/z'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y', 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( 'y', 'z' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterMultipleArrayMultipleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( 'z' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterMultipleArrayMultipleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::MULTIPLE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z/t'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z', 't' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( 'z', 't' ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterAggregateArraySingleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( array( 'x' ), array( 'y' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterAggregateArraySingleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/(param2)/y/z'; |
| |
| $url->setParam( 'param2', array( array( 'x' ), array( 'y', 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( array( 'x' ), array( 'y', 'z' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterAggregateArrayMultipleSingle() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( array( 'x', 'y' ), array( 'z' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetUnorderedParameterAggregateArrayMultipleMultiple() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addUnorderedParameter( 'param2', ezcUrlConfiguration::AGGREGATE_ARGUMENTS ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| $expected = 'http://www.example.com/(param2)/x/y/(param2)/z/t'; |
| |
| $url->setParam( 'param2', array( array( 'x', 'y' ), array( 'z', 't' ) ) ); |
| $this->assertEquals( $expected, $url->buildUrl() ); |
| |
| $this->assertEquals( array( array( 'x', 'y' ), array( 'z', 't' ) ), $url->getParam( 'param2' ) ); |
| } |
| |
| public function testSetOrderedParameterArrayFail() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'param2' ); |
| |
| $url = new ezcUrl( 'http://www.example.com', $urlCfg ); |
| |
| try |
| { |
| $url->setParam( 'param2', array( 'x' ) ); |
| $this->fail( 'Expected exception was not thrown.' ); |
| } |
| catch ( ezcBaseValueException $e ) |
| { |
| $this->assertEquals( "The value 'a:1:{i:0;s:1:\"x\";}' that you were trying to assign to setting 'param2' is invalid. Allowed values are: string.", $e->getMessage() ); |
| } |
| } |
| |
| public function testGetUnorderedParametersUnknownNoOrdered() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| |
| $url = new ezcUrl( 'http://www.example.com/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| } |
| |
| public function testGetUnorderedParametersUnknownBasedir() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| } |
| |
| public function testGetUnorderedParametersUnknownScript() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->script = 'index.php'; |
| |
| $url = new ezcUrl( 'http://www.example.com/index.php/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| } |
| |
| public function testGetUnorderedParametersUnknownBasedirScript() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| } |
| |
| public function testGetUnorderedParametersUnknownOrdered() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->addOrderedParameter( 'module' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/order/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| } |
| |
| public function testGetUnorderedParametersUnknownBasedirScriptOrdered() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'module' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/order/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( 'order', $url->getParam( 'module' ) ); |
| $this->assertEquals( array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| $this->assertEquals( 'order', $url->getParam( 'module' ) ); |
| } |
| |
| public function testGetUnorderedParametersUnknownBasedirScriptOrderedUnordered() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = '/mydir/shop'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addOrderedParameter( 'module' ); |
| $urlCfg->addUnorderedParameter( 'Software' ); |
| |
| $url = new ezcUrl( 'http://www.example.com/mydir/shop/index.php/order/(Software)/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg ); |
| $this->assertEquals( 'order', $url->getParam( 'module' ) ); |
| $this->assertEquals( 'PHP', $url->getParam( 'Software' ) ); |
| $this->assertEquals( array( '(Software)', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' ), $url->getParams() ); |
| $this->assertEquals( 'PHP', $url->getParam( 'Software' ) ); |
| $this->assertEquals( 'order', $url->getParam( 'module' ) ); |
| } |
| |
| /** |
| * Test for bug #12825 (URL parser doesn't like empty elements.) |
| */ |
| public function testGetUnorderedParameterMissing() |
| { |
| $urlCfg = new ezcUrlConfiguration(); |
| $urlCfg->basedir = 'mydir/'; |
| $urlCfg->script = 'index.php'; |
| $urlCfg->addUnorderedParameter( 'language' ); |
| |
| // should have been http://www.example.com/mydir/index.php/(language)/en |
| $url = new ezcUrl( 'http://www.example.com/mydir/index.php//en', $urlCfg ); |
| $this->assertEquals( null, $url->getParam( 'language' ) ); |
| } |
| |
| public function testIsSet() |
| { |
| $url = new ezcUrl( 'http://www.example.com' ); |
| $this->assertEquals( true, isset( $url->host ) ); |
| $this->assertEquals( false, isset( $url->user ) ); |
| $this->assertEquals( false, isset( $url->pass ) ); |
| $this->assertEquals( false, isset( $url->port ) ); |
| $this->assertEquals( true, isset( $url->scheme ) ); |
| $this->assertEquals( false, isset( $url->fragment ) ); |
| $this->assertEquals( true, isset( $url->path ) ); |
| $this->assertEquals( true, isset( $url->basedir ) ); |
| $this->assertEquals( true, isset( $url->script ) ); |
| $this->assertEquals( true, isset( $url->params ) ); |
| $this->assertEquals( true, isset( $url->uparams ) ); |
| $this->assertEquals( true, isset( $url->query ) ); |
| $this->assertEquals( false, isset( $url->configuration ) ); |
| $this->assertEquals( false, isset( $url->no_such_property ) ); |
| } |
| |
| public static function suite() |
| { |
| return new PHPUnit_Framework_TestSuite( "ezcUrlTest" ); |
| } |
| } |
| ?> |