test SQL for our QueryPages objects
authorAntoine Musso <hashar@users.mediawiki.org>
Tue, 8 Nov 2011 16:22:42 +0000 (16:22 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Tue, 8 Nov 2011 16:22:42 +0000 (16:22 +0000)
Part of bug 32118: test special pages SQL queries against all supported DB

Still need to add all the other non QueryPage special pages and then setup
jenkins to support other databases.

tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php [new file with mode: 0644]

diff --git a/tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php b/tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php
new file mode 100644 (file)
index 0000000..3debaf7
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Test class to run the query of most of all our special pages
+ *
+ * Copyright © 2011, Antoine Musso
+ *
+ * @author Antoine Musso
+ * @group Database
+ */
+global $IP;
+require_once("$IP/includes/QueryPage.php");
+class QueryAllSpecialPagesTest extends MediaWikiTestCase {
+
+       /** List query pages that can not be tested automatically */
+       protected $manualTest = array(
+               'LinkSearchPage'
+       );
+
+       /**
+        * Initialize all query page objects
+        */
+       function __construct() {
+               parent::__construct();
+
+               global $wgQueryPages;
+               foreach( $wgQueryPages as $page ) {
+                       $class = $page[0];
+                       if( ! in_array( $class, $this->manualTest ) ) {
+                               $this->queryPages[$class] = new $class;
+                       }
+               }
+       }
+
+       /**
+        * Test SQL for each of our QueryPages objects
+        * @group Database
+        */
+       function testQuerypageSqlQuery() {
+               foreach( $this->queryPages as $page ) {
+
+                       $msg = "SQL query for page {$page->getName()} should give a result wrapper object" ;
+
+                       $result = $page->reallyDoQuery( 50 );
+                       if( $result instanceof ResultWrapper ) {
+                               $this->assertTrue( true, $msg );
+                       } else {
+                               $this->assertFalse( false, $msg );
+                       }
+               }
+       }
+}