MediaWiki
REL1_21
|
00001 <?php 00002 include( "SeleniumTestConstants.php" ); 00003 00004 class SeleniumTestCase extends PHPUnit_Framework_TestCase { // PHPUnit_Extensions_SeleniumTestCase 00005 protected $selenium; 00006 00007 public function setUp() { 00008 set_time_limit( 60 ); 00009 $this->selenium = Selenium::getInstance(); 00010 } 00011 00012 public function tearDown() { 00013 00014 } 00015 00016 public function __call( $method, $args ) { 00017 return call_user_func_array( array( $this->selenium, $method ), $args ); 00018 } 00019 00020 public function assertSeleniumAttributeEquals( $attribute, $value ) { 00021 $attr = $this->getAttribute( $attribute ); 00022 $this->assertEquals( $attr, $value ); 00023 } 00024 00025 public function assertSeleniumHTMLContains( $element, $text ) { 00026 $innerHTML = $this->getText( $element ); 00027 // or assertContains 00028 $this->assertRegExp( "/$text/", $innerHTML ); 00029 } 00030 00031 00036 function createTestPageIfMissing( $pageName = null ) { 00037 if ( $pageName == null ) { 00038 $pageName = SeleniumTestConstants::WIKI_INTERNAL_LINK; 00039 } 00040 $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, $pageName ); 00041 $this->click( SeleniumTestConstants::BUTTON_SEARCH ); 00042 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00043 $this->click( SeleniumTestConstants::LINK_START . $pageName ); 00044 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00045 $location = $this->getLocation() . "\n"; 00046 if ( strpos( $location, '&redlink=1' ) !== false ) { 00047 $this->type( SeleniumTestConstants::TEXT_EDITOR, "Test fixture page. No real content here" ); 00048 $this->click( SeleniumTestConstants::BUTTON_SAVE ); 00049 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00050 $this->assertTrue( $this->isTextPresent( $pageName ), 00051 $this->getText( SeleniumTestConstants::TEXT_PAGE_HEADING ) ); 00052 } 00053 } 00054 00060 function createNewTestPage( $pagePrefix, $watchThis = false ) { 00061 $pageName = $pagePrefix . date( "Ymd-His" ); 00062 $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, $pageName ); 00063 $this->click( SeleniumTestConstants::BUTTON_SEARCH ); 00064 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00065 $this->click( SeleniumTestConstants::LINK_START . $pageName ); 00066 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00067 $location = $this->getLocation() . "\n"; 00068 $this->assertContains( '&redlink=1', $location ) . 00069 $this->type( SeleniumTestConstants::TEXT_EDITOR, "Test fixture page. No real content here" ); 00070 if ( $watchThis ) { 00071 $this->click( "wpWatchthis" ); 00072 } 00073 $this->click( SeleniumTestConstants::BUTTON_SAVE ); 00074 $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME ); 00075 $this->assertTrue( $this->isTextPresent( $pageName ), 00076 $this->getText( SeleniumTestConstants::TEXT_PAGE_HEADING ) ); 00077 return $pageName; 00078 } 00079 00080 public function getExistingPage() { 00081 $this->open( $this->getUrl() . 00082 '/index.php?title=Main_Page&action=edit' ); 00083 $this->type( "searchInput", "new" ); 00084 $this->click( "searchGoButton" ); 00085 $this->waitForPageToLoad( "30000" ); 00086 } 00087 00088 public function getNewPage( $pageName ) { 00089 00090 $this->open( $this->getUrl() . 00091 '/index.php?title=Main_Page&action=edit' ); 00092 $this->type( "searchInput", $pageName ); 00093 $this->click( "searchGoButton" ); 00094 $this->waitForPageToLoad( "30000" ); 00095 $this->click( "link=" . $pageName ); 00096 $this->waitForPageToLoad( "600000" ); 00097 00098 00099 } 00100 00101 // Loading the mediawiki editor 00102 public function loadWikiEditor() { 00103 $this->open( $this->getUrl() . 00104 '/index.php?title=Main_Page&action=edit' ); 00105 } 00106 00107 // Clear the content of the mediawiki editor 00108 public function clearWikiEditor() { 00109 $this->type( "wpTextbox1", "" ); 00110 } 00111 00112 // Click on the 'Show preview' button of the mediawiki editor 00113 public function clickShowPreviewBtn() { 00114 $this->click( "wpPreview" ); 00115 } 00116 00117 // Click on the 'Save Page' button of the mediawiki editor 00118 public function clickSavePageBtn() { 00119 $this->click( "wpSave" ); 00120 } 00121 00122 // Click on the 'Edit' link 00123 public function clickEditLink() { 00124 $this->click( "link=Edit" ); 00125 $this->waitForPageToLoad( "30000" ); 00126 } 00127 }