From 6e4ae8aced4f6aa5db8f0f84d6898fd9e44e5fda Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 16 Oct 2017 17:27:52 -0700 Subject: [PATCH] Add test case to verify all the i18n messages for a category exists Change-Id: If079206dd1f1c7c4a1b92f0ee05452bcc28b2323 --- includes/CategoryManager.php | 2 +- tests/phpunit/CategoryMessagesTest.php | 50 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 tests/phpunit/CategoryMessagesTest.php diff --git a/includes/CategoryManager.php b/includes/CategoryManager.php index 614bf17c..99f41df7 100644 --- a/includes/CategoryManager.php +++ b/includes/CategoryManager.php @@ -51,7 +51,7 @@ class CategoryManager { ]; /** - * @var string[] + * @var string[][] */ private $categories = [ self::HIGH => [], diff --git a/tests/phpunit/CategoryMessagesTest.php b/tests/phpunit/CategoryMessagesTest.php new file mode 100644 index 00000000..ef0860bd --- /dev/null +++ b/tests/phpunit/CategoryMessagesTest.php @@ -0,0 +1,50 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +namespace MediaWiki\Linter\Test; + +use MediaWiki\Linter\CategoryManager; +use MediaWikiTestCase; + +/** + * Test that all of the messages for new categories + * exist + */ +class CategoryMessagesTest extends MediaWikiTestCase { + + public static function provideCategoryNames() { + $manager = new CategoryManager(); + $tests = []; + foreach ( $manager as $category ) { + $tests[] = [ $category ]; + } + + return $tests; + } + + /** + * @dataProvider provideCategoryNames + */ + public function testMessagesExistence( $category ) { + $this->assertTrue( wfMessage( "linter-category-$category" )->exists() ); + $this->assertTrue( wfMessage( "linter-category-$category-desc" )->exists() ); + $this->assertTrue( wfMessage( "linter-pager-$category-details" )->exists() ); + } +}