public function testGetHomepageLink() {
		$default = $this->objFromFixture('Page', 'home');
		
		SiteTree::disable_nested_urls();
		$this->assertEquals('home', RootURLController::get_homepage_link());
		SiteTree::enable_nested_urls();
		$this->assertEquals('home', RootURLController::get_homepage_link());
	}
 public function testDeepNestedURLs()
 {
     SiteTree::enable_nested_urls();
     $page = new Page();
     $page->URLSegment = 'base-page';
     $page->write();
     for ($i = 0; $i < 10; $i++) {
         $parentID = $page->ID;
         $page = new ContentControllerTest_Page();
         $page->ParentID = $parentID;
         $page->Title = "Page Level {$i}";
         $page->URLSegment = "level-{$i}";
         $page->write();
         $relativeLink = Director::makeRelative($page->Link());
         $this->assertEquals($page->Title, $this->get($relativeLink)->getBody());
     }
     SiteTree::disable_nested_urls();
 }
 public function testGetHomepageLink()
 {
     $default = $this->objFromFixture('Page', 'home');
     $nested = $this->objFromFixture('Page', 'nested');
     SiteTree::disable_nested_urls();
     $this->assertEquals('home', RootURLController::get_homepage_link());
     SiteTree::enable_nested_urls();
     $this->assertEquals('home', RootURLController::get_homepage_link());
     $nested->HomepageForDomain = str_replace('www.', null, $_SERVER['HTTP_HOST']);
     $nested->write();
     RootURLController::reset();
     SiteTree::disable_nested_urls();
     $this->assertEquals('nested-home', RootURLController::get_homepage_link());
     RootURLController::reset();
     SiteTree::enable_nested_urls();
     $this->assertEquals('home/nested-home', RootURLController::get_homepage_link());
     $nested->HomepageForDomain = null;
     $nested->write();
 }
 function tearDown()
 {
     // Preserve memory settings
     ini_set('memory_limit', $this->originalMemoryLimit ? $this->originalMemoryLimit : -1);
     // Restore email configuration
     Email::set_mailer($this->originalMailer);
     $this->originalMailer = null;
     $this->mailer = null;
     // Restore password validation
     Member::set_password_validator($this->originalMemberPasswordValidator);
     // Restore requirements
     Requirements::set_backend($this->originalRequirements);
     // Mark test as no longer being run - we use originalIsRunningTest to allow for nested SapphireTest calls
     self::$is_running_test = $this->originalIsRunningTest;
     $this->originalIsRunningTest = null;
     // Reset theme setting
     SSViewer::set_theme($this->originalTheme);
     // Reset mocked datetime
     SS_Datetime::clear_mock_now();
     // Restore nested_urls state
     if ($this->originalNestedURLsState) {
         SiteTree::enable_nested_urls();
     } else {
         SiteTree::disable_nested_urls();
     }
     // Stop the redirection that might have been requested in the test.
     // Note: Ideally a clean Controller should be created for each test.
     // Now all tests executed in a batch share the same controller.
     $controller = Controller::has_curr() ? Controller::curr() : null;
     if ($controller && $controller->response && $controller->response->getHeader('Location')) {
         $controller->response->setStatusCode(200);
         $controller->response->removeHeader('Location');
     }
 }
Example #5
0
<?php

global $project;
$project = 'mysite';
global $databaseConfig;
$databaseConfig = array("type" => 'MySQLDatabase', "server" => 'localhost', "username" => 'root', "password" => 'omega', "database" => 'vp', "path" => '');
MySQLDatabase::set_connection_charset('utf8');
// Set the current theme. More themes can be downloaded from
// http://www.silverstripe.org/themes/
SSViewer::set_theme('simple');
// Set the site locale
i18n::set_locale('en_US');
FulltextSearchable::enable();
// Enable nested URLs for this site (e.g. page/sub-page/)
if (class_exists('SiteTree')) {
    SiteTree::enable_nested_urls();
}
Director::set_environment_type("dev");
// add a button to remove formatting
HtmlEditorConfig::get('cms')->insertButtonsBefore('styleselect', 'removeformat');
// tell the button which tags it may remove
HtmlEditorConfig::get('cms')->setOption('removeformat_selector', 'b,strong,em,i,span,ins');
//remove font->span conversion
HtmlEditorConfig::get('cms')->setOption('convert_fonts_to_spans', 'false,');
HtmlEditorConfig::get('cms')->setOptions(array('valid_elements' => "@[id|class|style|title],#a[id|rel|rev|dir|tabindex|accesskey|type|name|href|target|title|class],-strong/-b[class],-em/-i[class],-strike[class],-u[class],#p[id|dir|class|align|style],-ol[class],-ul[class],-li[class],br,img[id|dir|longdesc|usemap|class|src|border|alt=|title|width|height|align],-sub[class],-sup[class],-blockquote[dir|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|dir|id|style],-tr[id|dir|class|rowspan|width|height|align|valign|bgcolor|background|bordercolor|style],tbody[id|class|style],thead[id|class|style],tfoot[id|class|style],#td[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],-th[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],caption[id|dir|class],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|dir|class|align|style],hr[class],dd[id|class|title|dir],dl[id|class|title|dir],dt[id|class|title|dir],@[id,style,class],small", 'extended_valid_elements' => "img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|usemap],#iframe[src|name|width|height|align|frameborder|marginwidth|marginheight|scrolling],object[width|height|data|type],param[name|value],map[class|name|id],area[shape|coords|href|target|alt]"));
// TinyMCE cleanup on paste
HtmlEditorConfig::get('cms')->setOption('paste_auto_cleanup_on_paste', 'true');
HtmlEditorConfig::get('cms')->setOption('paste_remove_styles', 'true');
HtmlEditorConfig::get('cms')->setOption('paste_remove_styles_if_webkit', 'true');
HtmlEditorConfig::get('cms')->setOption('paste_strip_class_attributes', 'true');
GD::set_default_quality(80);
 /**
  * @covers SiteTree::validURLSegment
  */
 public function testValidURLSegmentControllerConflicts()
 {
     SiteTree::enable_nested_urls();
     $sitetree = new SiteTree();
     $sitetree->ParentID = $this->idFromFixture('SiteTreeTest_Conflicted', 'parent');
     $sitetree->URLSegment = 'index';
     $this->assertFalse($sitetree->validURLSegment(), 'index is not a valid URLSegment');
     $sitetree->URLSegment = 'conflicted-action';
     $this->assertFalse($sitetree->validURLSegment(), 'allowed_actions conflicts are recognised');
     $sitetree->URLSegment = 'conflicted-template';
     $this->assertFalse($sitetree->validURLSegment(), 'Action-specific template conflicts are recognised');
     $sitetree->URLSegment = 'valid';
     $this->assertTrue($sitetree->validURLSegment(), 'Valid URLSegment values are allowed');
 }
 /**
  * New tests require nested urls to be enabled, but the site might not 
  * support nested URLs. 
  * This setup will enable nested-urls for this test and resets the state
  * after the tests have been performed.
  */
 function setUp()
 {
     parent::setUp();
     $this->orig['nested_urls'] = SiteTree::nested_urls();
     SiteTree::enable_nested_urls();
 }
 /**
  * go to a page that's been published but is child of an unpublished page
  *
  * NOTE: This test requires nested_urls
  */
 function testChildOfDraft()
 {
     RootURLController::reset();
     SiteTree::enable_nested_urls();
     $draft = new Page();
     $draft->Title = 'Root Leve Draft Page';
     $draft->URLSegment = 'root';
     $draft->write();
     $published = new Page();
     $published->Title = 'Published Page Under Draft Page';
     $published->URLSegment = 'sub-root';
     $published->write();
     $published->publish('Stage', 'Live');
     $response = $this->get('root/sub-root');
     $this->assertEquals($response->getStatusCode(), 404, 'The page should not be found since its parent has not been published, in this case http://<yousitename>/root/sub-root or http://<yousitename>/sub-root');
 }
 public function testAlternateGetByLink()
 {
     $parent = $this->objFromFixture('Page', 'parent');
     $child = $this->objFromFixture('Page', 'child1');
     $grandchild = $this->objFromFixture('Page', 'grandchild1');
     $parentTranslation = $parent->createTranslation('en_AU');
     $parentTranslation->write();
     $childTranslation = $child->createTranslation('en_AU');
     $childTranslation->write();
     $grandchildTranslation = $grandchild->createTranslation('en_AU');
     $grandchildTranslation->write();
     SiteTree::enable_nested_urls();
     Translatable::set_current_locale('en_AU');
     $this->assertEquals($parentTranslation->ID, Sitetree::get_by_link($parentTranslation->Link())->ID, 'Top level pages can be found.');
     $this->assertEquals($childTranslation->ID, SiteTree::get_by_link($childTranslation->Link())->ID, 'Child pages can be found.');
     $this->assertEquals($grandchildTranslation->ID, SiteTree::get_by_link($grandchildTranslation->Link())->ID, 'Grandchild pages can be found.');
     // TODO Re-enable test after clarifying with ajshort (see r88503).
     // Its unclear if this is valid behaviour, and/or necessary for translated nested URLs
     // to work properly
     //
     // $this->assertEquals (
     // 	$child->ID,
     // 	SiteTree::get_by_link($parentTranslation->Link($child->URLSegment))->ID,
     // 	'Links can be made up of multiple languages'
     // );
 }
 public function testAlternateGetByLink()
 {
     $parent = $this->objFromFixture('Page', 'parent');
     $child = $this->objFromFixture('Page', 'child1');
     $grandchild = $this->objFromFixture('Page', 'grandchild1');
     $parentTranslation = $parent->createTranslation('en_AU');
     $parentTranslation->write();
     $childTranslation = $child->createTranslation('en_AU');
     $childTranslation->write();
     $grandchildTranslation = $grandchild->createTranslation('en_AU');
     $grandchildTranslation->write();
     SiteTree::enable_nested_urls();
     Translatable::set_current_locale('en_AU');
     $this->assertEquals($parentTranslation->ID, Sitetree::get_by_link($parentTranslation->Link(true))->ID, 'Top level pages can be found.');
     $this->assertEquals($childTranslation->ID, SiteTree::get_by_link($childTranslation->Link())->ID, 'Child pages can be found.');
     $this->assertEquals($grandchildTranslation->ID, SiteTree::get_by_link($grandchildTranslation->Link())->ID, 'Grandchild pages can be found.');
 }