diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
commit | ca32f08966f1b51fcb19460f0996bb0c4048e6fe (patch) | |
tree | ec04cc15b867bc21eedca904cea9af0254531a11 /tests/selenium/SeleniumTestSuite.php | |
parent | a22fbfc60f36f5f7ee10d5ae6fe347340c2ee67c (diff) |
Update to MediaWiki 1.18.0
* also update ArchLinux skin to chagnes in MonoBook
* Use only css to hide our menu bar when printing
Diffstat (limited to 'tests/selenium/SeleniumTestSuite.php')
-rw-r--r-- | tests/selenium/SeleniumTestSuite.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/selenium/SeleniumTestSuite.php b/tests/selenium/SeleniumTestSuite.php new file mode 100644 index 00000000..81a630f8 --- /dev/null +++ b/tests/selenium/SeleniumTestSuite.php @@ -0,0 +1,57 @@ +<?php + +abstract class SeleniumTestSuite extends PHPUnit_Framework_TestSuite { + private $selenium; + private $isSetUp = false; + private $loginBeforeTests = true; + private $triggerClientTestResources = true; + + // Do not add line break after test output + const CONTINUE_LINE = 1; + const RESULT_OK = 2; + const RESULT_ERROR = 3; + + public abstract function addTests(); + + public function setUp() { + // Hack because because PHPUnit version 3.0.6 which is on prototype does not + // run setUp as part of TestSuite::run + if ( $this->isSetUp ) { + return; + } + $this->isSetUp = true; + $this->selenium = Selenium::getInstance(); + $this->selenium->start(); + if ( $this->triggerClientTestResources ) { + $this->selenium->open( $this->selenium->getUrl() . '/index.php?setupTestSuite=' . $this->getName() ); + //wait a little longer for the db operation + $this->selenium->waitForPageToLoad( 6000 ); + } + if ( $this->loginBeforeTests ) { + $this->login(); + } + } + + public function tearDown() { + if ( $this->triggerClientTestResources ) { + $this->selenium->open( $this->selenium->getUrl() . '/index.php?clearTestSuite=' . $this->getName() ); + } + $this->selenium->stop(); + } + + public function login() { + $this->selenium->login(); + } + + public function loadPage( $title, $action ) { + $this->selenium->loadPage( $title, $action ); + } + + protected function setLoginBeforeTests( $loginBeforeTests = true ) { + $this->loginBeforeTests = $loginBeforeTests; + } + + protected function setTriggerClientTestResources( $triggerClientTestResources = true ) { + $this->triggerClientTestResources = $triggerClientTestResources; + } +} |