autoFollowRedirection = false; } /** * Check that all subclasses of leftandmain can be accessed */ public function testLeftAndMainSubclasses() { $adminuser = $this->objFromFixture('Member','admin'); $this->session()->inst_set('loggedInAs', $adminuser->ID); $menuItems = singleton('CMSMain')->MainMenu(); foreach($menuItems as $menuItem) { $link = $menuItem->Link; // don't test external links if(preg_match('/^https?:\/\//',$link)) continue; $response = $this->get($link); $this->assertType('HTTPResponse', $response, "$link should return a response object"); $this->assertEquals(200, $response->getStatusCode(), "$link should return 200 status code"); // Check that a HTML page has been returned $this->assertRegExp('/]*>/i', $response->getBody(), "$link should contain tag"); $this->assertRegExp('/]*>/i', $response->getBody(), "$link should contain tag"); $this->assertRegExp('/]*>/i', $response->getBody(), "$link should contain tag"); } $this->session()->inst_set('loggedInAs', null); } function testCanView() { $adminuser = $this->objFromFixture('Member', 'admin'); $assetsonlyuser = $this->objFromFixture('Member', 'assetsonlyuser'); // anonymous user $this->session()->inst_set('loggedInAs', null); $menuItems = singleton('LeftAndMain')->MainMenu(); $this->assertEquals( $menuItems->column('Code'), array(), 'Without valid login, members cant access any menu entries' ); // restricted cms user $this->session()->inst_set('loggedInAs', $assetsonlyuser->ID); $menuItems = singleton('LeftAndMain')->MainMenu(); $this->assertEquals( $menuItems->column('Code'), array('AssetAdmin','Help'), 'Groups with limited access can only access the interfaces they have permissions for' ); // admin $this->session()->inst_set('loggedInAs', $adminuser->ID); $menuItems = singleton('LeftAndMain')->MainMenu(); $this->assertContains( 'CMSMain', $menuItems->column('Code'), 'Administrators can access CMS' ); $this->assertContains( 'AssetAdmin', $menuItems->column('Code'), 'Administrators can access Assets' ); $this->session()->inst_set('loggedInAs', null); } }