jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/400242 )

Change subject: Added a unit test to check that the name must be unique per 
newsletter
......................................................................


Added a unit test to check that the name must be unique per newsletter

Bug: T183632
Bug: T183638
Change-Id: I0bcdb1d3b8778b5fc01b23f62a83cbfb407f7a09
---
M tests/specials/SpecialNewsletterCreateTest.php
1 file changed, 37 insertions(+), 1 deletion(-)

Approvals:
  01tonythomas: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/specials/SpecialNewsletterCreateTest.php 
b/tests/specials/SpecialNewsletterCreateTest.php
index d69a5ce..ee8bb40 100644
--- a/tests/specials/SpecialNewsletterCreateTest.php
+++ b/tests/specials/SpecialNewsletterCreateTest.php
@@ -10,6 +10,11 @@
  */
 class SpecialNewsletterCreateTest extends SpecialPageTestBase {
 
+       protected function setUp() {
+               parent::setUp(); // TODO: Change the autogenerated stub
+               $this->tablesUsed = [ 'nl_newsletters' ];
+       }
+
        protected function newSpecialPage() {
                return new SpecialNewsletterCreate();
        }
@@ -23,7 +28,7 @@
        public function testCreateNewsletterMainPageExists() {
                $input = [
                        'name' => 'Test Newsletter',
-                       'description' => 'This is a test newsletter that should 
return an error for a bad main page.',
+                       'description' => 'This newsletter has a nonexistent 
main page',
                        'mainpage' => Title::newFromText( 'BdaMianPage' 
)->getBaseText()
                ];
 
@@ -46,6 +51,7 @@
                $mainpage = Title::newFromText( 'UTPage' );
                $firstNewsletterTitle = Title::makeTitleSafe( NS_NEWSLETTER, 
'First Newsletter' );
                $store = NewsletterStore::getDefaultInstance();
+
                $firstNewsletter = new Newsletter( 0,
                        $firstNewsletterTitle->getText(),
                        'This newsletter uses the main page, preventing a 
second newsletter from using it',
@@ -68,4 +74,34 @@
                        $store->getNewsletterFromName( 'Second Newsletter' )
                );
        }
+
+       public function testCreateNewsletterNameUnique() {
+               // Create 1st newsletter that will have a duplicated name
+               $newsletterTitle = Title::makeTitleSafe( NS_NEWSLETTER, 
'Duplicated Newsletter' );
+               $firstMainPage = Title::newFromText( 'Test Page' );
+               $store = NewsletterStore::getDefaultInstance();
+
+               $firstNewsletter = new Newsletter( 0,
+                       $newsletterTitle->getText(),
+                       'This is a test newsletter that will have its name 
duplicated',
+                       $firstMainPage->getArticleID()
+               );
+               $newsletterCreated = $store->addNewsletter( $firstNewsletter );
+               $this->assertTrue( $newsletterCreated );
+
+               // Create 2nd newsletter with a duplicated name
+               $secondMainPage = Title::newFromText( 'UTPage' );
+               $input = [
+                       'name' => $newsletterTitle->getText(),
+                       'description' => 'This newsletter duplicates a name, 
returning an error',
+                       'mainpage' => $secondMainPage->getBaseText()
+               ];
+               $res = $this->newSpecialPage()->onSubmit( $input );
+               $this->assertEquals( $res->getMessage()->getKey(), 
'newsletter-exist-error' );
+
+               // The second newsletter was not created
+               $this->assertNull(
+                       $store->getNewsletter( $firstNewsletter->getID() + 1 )
+               );
+       }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/400242
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0bcdb1d3b8778b5fc01b23f62a83cbfb407f7a09
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: Ryan10145 <[email protected]>
Gerrit-Reviewer: 01tonythomas <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Ryan10145 <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to