mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
synced 2024-11-25 00:37:23 +00:00
c93dc3714c
Change-Id: Icc9d4d647ce189ba8044627bcdface0c7a33e31d
296 lines
11 KiB
PHP
296 lines
11 KiB
PHP
<?php
|
|
include( "WikiEditorConstants.php" );
|
|
/**
|
|
* This test case will be handling the Wiki Tool bar Dialog functions
|
|
* Date : Apr - 2010
|
|
* @author : BhagyaG - Calcey
|
|
*/
|
|
class WikiDialogs_Links_Setup extends SeleniumTestCase {
|
|
|
|
// Open the page.
|
|
function doOpenLink() {
|
|
$this->open( $this->getUrl() . '/index.php' );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
}
|
|
|
|
// Expand advance tool bar section if its not
|
|
function doExpandAdvanceSection() {
|
|
if ( !$this->isTextPresent( TEXT_HEADING ) ) {
|
|
$this->click( LINK_ADVANCED );
|
|
}
|
|
}
|
|
|
|
// Log out from the application
|
|
function doLogout() {
|
|
$this->open( $this->getUrl() . '/index.php' );
|
|
if ( $this->isTextPresent( TEXT_LOGOUT ) ) {
|
|
$this->click( LINK_LOGOUT );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( TEXT_LOGOUT_CONFIRM, $this->getText( LINK_LOGIN ) );
|
|
$this->open( $this->getUrl() . '/index.php' );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
}
|
|
}
|
|
|
|
// Create a temporary fixture page
|
|
function doCreateInternalTestPageIfMissing() {
|
|
$this->type( INPUT_SEARCH_BOX, WIKI_INTERNAL_LINK );
|
|
$this->click( BUTTON_SEARCH );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->click( LINK_START . WIKI_INTERNAL_LINK );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$location = $this->getLocation() . "\n";
|
|
if ( strpos( $location, '&redlink=1' ) !== false ) {
|
|
$this->type( TEXT_EDITOR, "Test fixture page. No real content here" );
|
|
$this->click( BUTTON_SAVE_WATCH );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isTextPresent( WIKI_INTERNAL_LINK ),
|
|
$this->getText( TEXT_PAGE_HEADING ) );
|
|
}
|
|
}
|
|
|
|
// Create a temporary new page
|
|
function doCreateNewPageTemporary() {
|
|
$this->type( INPUT_SEARCH_BOX, WIKI_TEMP_NEWPAGE );
|
|
$this->click( BUTTON_SEARCH );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->click( LINK_START . WIKI_TEMP_NEWPAGE );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
}
|
|
|
|
// Add a internal link and verify
|
|
function verifyInternalLink() {
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->waitForPopup( 'addLink', WIKI_TEST_WAIT_TIME );
|
|
$this->type( TEXT_LINKNAME, ( WIKI_INTERNAL_LINK ) );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXISTS ), 'Element ' . ICON_PAGEEXISTS . 'Not found' );
|
|
$this->assertEquals( "on", $this->getValue( OPT_INTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( ( WIKI_INTERNAL_LINK ), $this->getText( LINK_START . WIKI_INTERNAL_LINK ) );
|
|
$this->click( LINK_START . WIKI_INTERNAL_LINK );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isTextPresent( WIKI_INTERNAL_LINK ), $this->getText( TEXT_PAGE_HEADING ) );
|
|
}
|
|
|
|
// Add a internal link with different display text and verify
|
|
function verifyInternalLinkWithDisplayText() {
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->waitForPopup( 'addLink', WIKI_TEST_WAIT_TIME );
|
|
$this->type( TEXT_LINKNAME, WIKI_INTERNAL_LINK );
|
|
$this->type ( TEXT_LINKDISPLAYNAME, WIKI_INTERNAL_LINK . TEXT_LINKDISPLAYNAME_APPENDTEXT );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXISTS ) );
|
|
$this->assertEquals( "on", $this->getValue( OPT_INTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_INTERNAL_LINK . TEXT_LINKDISPLAYNAME_APPENDTEXT,
|
|
$this->getText( LINK_START . WIKI_INTERNAL_LINK . TEXT_LINKDISPLAYNAME_APPENDTEXT ) );
|
|
$this->click( LINK_START . WIKI_INTERNAL_LINK . TEXT_LINKDISPLAYNAME_APPENDTEXT );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isTextPresent( WIKI_INTERNAL_LINK ), $this->getText( TEXT_PAGE_HEADING ) );
|
|
|
|
}
|
|
|
|
// Add a internal link with blank display text and verify
|
|
function verifyInternalLinkWithBlankDisplayText() {
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->waitForPopup( 'addLink', WIKI_TEST_WAIT_TIME );
|
|
$this->type( TEXT_LINKNAME, WIKI_INTERNAL_LINK );
|
|
$this->type( TEXT_LINKDISPLAYNAME, "" );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXISTS ) );
|
|
$this->assertEquals( "on", $this->getValue( OPT_INTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_INTERNAL_LINK, $this->getText( LINK_START . WIKI_INTERNAL_LINK ) );
|
|
$this->click( LINK_START . WIKI_INTERNAL_LINK );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_INTERNAL_LINK, $this->getText( TEXT_PAGE_HEADING ) );
|
|
|
|
}
|
|
|
|
// Add external link and verify
|
|
function verifyExternalLink() {
|
|
$this->type( LINK_PREVIEW, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->type( TEXT_LINKNAME, WIKI_EXTERNAL_LINK );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXTERNAL ) );
|
|
$this->assertEquals( "on", $this->getValue( OPT_EXTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_EXTERNAL_LINK, $this->getText( LINK_START . WIKI_EXTERNAL_LINK ) );
|
|
|
|
$this->click( LINK_START . WIKI_EXTERNAL_LINK );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_EXTERNAL_LINK_TITLE, $this->getTitle() );
|
|
}
|
|
|
|
// Add external link with different display text and verify
|
|
function verifyExternalLinkWithDisplayText() {
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->type( TEXT_LINKNAME, WIKI_EXTERNAL_LINK );
|
|
$this->type( TEXT_LINKDISPLAYNAME, WIKI_EXTERNAL_LINK_TITLE );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXTERNAL ) );
|
|
$this->assertEquals( "on", $this->getValue( OPT_EXTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_EXTERNAL_LINK_TITLE, $this->getText( LINK_START . WIKI_EXTERNAL_LINK_TITLE ) );
|
|
$this->click( LINK_START . ( WIKI_EXTERNAL_LINK_TITLE ) );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_EXTERNAL_LINK_TITLE , $this->getTitle() );
|
|
}
|
|
|
|
// Add external link with Blank display text and verify
|
|
function verifyExternalLinkWithBlankDisplayText() {
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDLINK );
|
|
$this->type( TEXT_LINKNAME, WIKI_EXTERNAL_LINK );
|
|
$this->type( TEXT_LINKDISPLAYNAME, "" );
|
|
$this->assertTrue( $this->isElementPresent( ICON_PAGEEXTERNAL ) );
|
|
$this->assertEquals( "on", $this->getValue( OPT_EXTERNAL ) );
|
|
$this->click( BUTTON_INSERTLINK );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( "[1]", $this->getText( LINK_START . "[1]" ) );
|
|
$this->click( LINK_START . "[1]" );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertEquals( WIKI_EXTERNAL_LINK_TITLE, $this->getTitle() );
|
|
}
|
|
|
|
// Add a table and verify
|
|
function verifyCreateTable() {
|
|
$WIKI_TABLE_ROW = 2;
|
|
$WIKI_TABLE_COL = "5";
|
|
$this->doExpandAdvanceSection();
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_SORT );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( CHK_SORT );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$WIKI_TABLE_ROW = $WIKI_TABLE_ROW + 1;
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_OTHER .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
// Add a table and verify only with head row
|
|
function verifyCreateTableWithHeadRow() {
|
|
$WIKI_TABLE_ROW = 3;
|
|
$WIKI_TABLE_COL = "4";
|
|
$this->doExpandAdvanceSection();
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_BOARDER );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$WIKI_TABLE_ROW = $WIKI_TABLE_ROW + 1;
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_OTHER .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
// Add a table and verify only with borders
|
|
function verifyCreateTableWithBorders() {
|
|
$WIKI_TABLE_ROW = "4";
|
|
$WIKI_TABLE_COL = "6";
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_HEADER );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( CHK_HEADER );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_OTHER .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
// Add a table and verify only with sort row
|
|
function verifyCreateTableWithSortRow() {
|
|
$WIKI_TABLE_ROW = "2";
|
|
$WIKI_TABLE_COL = "5";
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_HEADER );
|
|
$this->click( CHK_BOARDER );
|
|
$this->click( CHK_SORT );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( CHK_HEADER );
|
|
$this->click( CHK_BOARDER );
|
|
$this->click( CHK_SORT );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_WITHALLFEATURES .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
// Add a table without headers,borders and sort rows
|
|
function verifyCreateTableWithNoSpecialEffects() {
|
|
$WIKI_TABLE_ROW = "6";
|
|
$WIKI_TABLE_COL = "2";
|
|
$this->
|
|
$this->doExpandAdvanceSection();
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_BOARDER );
|
|
$this->click( CHK_HEADER );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( CHK_BOARDER );
|
|
$this->click( CHK_HEADER );
|
|
$this->click( INK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_OTHER .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
// Add a table with headers,borders and sort rows
|
|
function verifyCreateTableWithAllSpecialEffects() {
|
|
$WIKI_TABLE_ROW = 6;
|
|
$WIKI_TABLE_COL = "2";
|
|
$this->doExpandAdvanceSection();
|
|
$this->type( TEXT_EDITOR, "" );
|
|
$this->click( LINK_ADDTABLE );
|
|
$this->click( CHK_SORT );
|
|
$this->type( TEXT_ROW, $WIKI_TABLE_ROW );
|
|
$this->type( TEXT_COL, $WIKI_TABLE_COL );
|
|
$this->click( BUTTON_INSERTABLE );
|
|
$this->click( CHK_SORT );
|
|
$this->click( LINK_PREVIEW );
|
|
$this->waitForPageToLoad( WIKI_TEST_WAIT_TIME );
|
|
$WIKI_TABLE_ROW = $WIKI_TABLE_ROW + 1;
|
|
$this->assertTrue( $this->isElementPresent( TEXT_TABLEID_WITHALLFEATURES .
|
|
TEXT_VALIDATE_TABLE_PART1 . $WIKI_TABLE_ROW .
|
|
TEXT_VALIDATE_TABLE_PART2 . $WIKI_TABLE_COL .
|
|
TEXT_VALIDATE_TABLE_PART3 ) );
|
|
}
|
|
|
|
}
|