diff options
Diffstat (limited to 'www/wiki/tests/phpunit/tests/MediaWikiTestCaseSchema2Test.php')
-rw-r--r-- | www/wiki/tests/phpunit/tests/MediaWikiTestCaseSchema2Test.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/tests/MediaWikiTestCaseSchema2Test.php b/www/wiki/tests/phpunit/tests/MediaWikiTestCaseSchema2Test.php new file mode 100644 index 00000000..5464dc43 --- /dev/null +++ b/www/wiki/tests/phpunit/tests/MediaWikiTestCaseSchema2Test.php @@ -0,0 +1,48 @@ +<?php + +/** + * @covers MediaWikiTestCase + * + * @group Database + * @group MediaWikiTestCaseTest + * + * This test is intended to be executed AFTER MediaWikiTestCaseSchema1Test to ensure + * that any schema modifications have been cleaned up between test cases. + * As there seems to be no way to force execution order, we currently rely on + * test classes getting run in anpha-numerical order. + * Order is checked by the testMediaWikiTestCaseSchemaTestOrder test in both classes. + */ +class MediaWikiTestCaseSchema2Test extends MediaWikiTestCase { + + public function testMediaWikiTestCaseSchemaTestOrder() { + // The first test must have run before this one + $this->assertTrue( MediaWikiTestCaseSchema1Test::$hasRun ); + } + + public function testCreatedTableWasRemoved() { + // Make sure MediaWikiTestCaseTestTable created by MediaWikiTestCaseSchema1Test + // was dropped before executing MediaWikiTestCaseSchema2Test. + $this->assertFalse( $this->db->tableExists( 'MediaWikiTestCaseTestTable' ) ); + } + + public function testDroppedTableWasRestored() { + // Make sure oldimage that was dropped by MediaWikiTestCaseSchema1Test + // was restored before executing MediaWikiTestCaseSchema2Test. + $this->assertTrue( $this->db->tableExists( 'oldimage' ) ); + } + + public function testOverridenTableWasRestored() { + // Make sure imagelinks overwritten by MediaWikiTestCaseSchema1Test + // was restored to the original schema before executing MediaWikiTestCaseSchema2Test. + $this->assertTrue( $this->db->tableExists( 'imagelinks' ) ); + $this->assertFalse( $this->db->fieldExists( 'imagelinks', 'il_frobnitz' ) ); + } + + public function testAlteredTableWasRestored() { + // Make sure pagelinks altered by MediaWikiTestCaseSchema1Test + // was restored to the original schema before executing MediaWikiTestCaseSchema2Test. + $this->assertTrue( $this->db->tableExists( 'pagelinks' ) ); + $this->assertFalse( $this->db->fieldExists( 'pagelinks', 'pl_frobnitz' ) ); + } + +} |