Perforce Chronicle 2012.2/486814
API Documentation
|
Test the site index controller. More...
Public Member Functions | |
testIndexGet () | |
Test general site settings display. | |
testIndexGoodPost () | |
Test providing good POST parameters. | |
testIndexNoSiteTitle () | |
Test providing an empty site title. | |
testRobots () | |
Test the robots action. | |
Protected Member Functions | |
_getRequestHttpHost () | |
A helper method to determine the request's hostname. |
Test the site index controller.
Site_Test_IndexControllerTest::_getRequestHttpHost | ( | ) | [protected] |
A helper method to determine the request's hostname.
{ $host = $this->request->getHttpHost(); if (preg_match('#:\d+$#', $host, $result) === 1) { $host = substr($host, 0, -strlen($result[0])); } return $host; }
Site_Test_IndexControllerTest::testIndexGet | ( | ) |
Test general site settings display.
{ $this->utility->impersonate('administrator'); $site = P4Cms_Site::fetchActive(); // test that basic list renders correctly. $this->dispatch('/site/config'); $body = $this->response->getBody(); $this->assertModule( 'site', 'Last module should be site, got "'. $this->request->getModuleName() .'", body: '. $body ); $this->assertController( 'index', 'Expected index controller, got "'. $this->request->getControllerName() .'", body: '. $body ); $this->assertAction( 'config', 'Expected index action, got "'. $this->request->getActionName() .'", body: '. $body ); }
Site_Test_IndexControllerTest::testIndexGoodPost | ( | ) |
Test providing good POST parameters.
{ $this->utility->impersonate('administrator'); // test that basic list renders correctly. $host = $this->_getRequestHttpHost(); $title = 'my site'; $settings = array( 'title' => $title ); $this->request->setPost($settings); $this->request->setMethod('POST'); $this->dispatch('/site/config'); $body = $this->response->getBody(); $this->assertModule( 'site', 'Last module should be site, got "'. $this->request->getModuleName() .'", body: '. $body ); $this->assertController( 'index', 'Expected index controller, got "'. $this->request->getControllerName() .'", body: '. $body ); $this->assertAction( 'config', 'Expected index action, got "'. $this->request->getActionName() .'", body: '. $body ); $this->assertRedirectTo('/site/config', __LINE__ .': Expect redirect to site/index/config.'. $body); $config = P4Cms_Site::fetchActive()->getConfig(); $this->assertEquals($title, $config->getTitle(), 'Expected value for title.'); }
Site_Test_IndexControllerTest::testIndexNoSiteTitle | ( | ) |
Test providing an empty site title.
{ $this->utility->impersonate('administrator'); // test that basic list renders correctly. $settings = array( 'title' => '' ); $this->request->setPost($settings); $this->request->setMethod('POST'); $this->dispatch('/site/config'); $body = $this->response->getBody(); $this->assertModule( 'site', 'Last module should be site, got "'. $this->request->getModuleName() .'", body: '. $body ); $this->assertController( 'index', 'Expected index controller, got "'. $this->request->getControllerName() .'", body: '. $body ); $this->assertAction( 'config', 'Expected index action, got "'. $this->request->getActionName() .'", body: '. $body ); $this->assertQueryContentContains( "dd[id='title-element'] ul.errors li", "Value is required and can't be empty", 'Expected an error for the title field in: '. $body ); }
Site_Test_IndexControllerTest::testRobots | ( | ) |
Test the robots action.
{ $this->dispatch('/site/robots'); $body = $this->response->getBody(); $this->assertEquals("User-agent: *\nDisallow:\n", $body, 'Expected default robots.txt'); // change robots.txt $this->resetRequest()->resetResponse(); $this->utility->impersonate('administrator'); $settings = array( 'title' => 'my site', 'robots' => "User-agent: google\nDisallow: yahoo" ); $this->request->setPost($settings); $this->request->setMethod('POST'); $this->dispatch('/site/config'); $this->assertModule('site', 'Expected module'); $this->assertController('index', 'Expected controller'); $this->assertAction('config', 'Expected action'); // verify the change $this->resetRequest()->resetResponse(); $this->dispatch('/site/robots'); $body = $this->response->getBody(); $this->assertEquals("User-agent: google\nDisallow: yahoo", $body, 'Expected modified robots.txt'); }