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

Change subject: Simplify autocomplete attribute in HTMLForm
......................................................................


Simplify autocomplete attribute in HTMLForm

Follows-up 7489a3e8

Change-Id: Ifb17c88e39df7031054b3bee83772172c64d0a6b
---
M includes/htmlform/HTMLForm.php
M tests/phpunit/includes/htmlform/HTMLFormTest.php
2 files changed, 45 insertions(+), 11 deletions(-)

Approvals:
  jenkins-bot: Verified
  Thiemo Kreuz (WMDE): Looks good to me, approved



diff --git a/includes/htmlform/HTMLForm.php b/includes/htmlform/HTMLForm.php
index d959dd2..296c4b3 100644
--- a/includes/htmlform/HTMLForm.php
+++ b/includes/htmlform/HTMLForm.php
@@ -213,11 +213,11 @@
        protected $mAction = false;
 
        /**
-        * Form attribute autocomplete. false does not set the attribute
+        * Form attribute autocomplete. A typical value is "off". null does not 
set the attribute
         * @since 1.27
-        * @var bool|string
+        * @var string|null
         */
-       protected $mAutocomplete = false;
+       protected $mAutocomplete = null;
 
        protected $mUseMultipart = false;
        protected $mHiddenFields = [];
@@ -1062,7 +1062,7 @@
                if ( $this->mId ) {
                        $attribs['id'] = $this->mId;
                }
-               if ( $this->mAutocomplete ) {
+               if ( is_string( $this->mAutocomplete ) ) {
                        $attribs['autocomplete'] = $this->mAutocomplete;
                }
                if ( $this->mName ) {
@@ -1868,12 +1868,12 @@
        }
 
        /**
-        * Set the value for the autocomplete attribute of the form.
-        * When set to false (which is the default state), the attribute get 
not set.
+        * Set the value for the autocomplete attribute of the form. A typical 
value is "off".
+        * When set to null (which is the default state), the attribute get not 
set.
         *
         * @since 1.27
         *
-        * @param string|bool $autocomplete
+        * @param string|null $autocomplete
         *
         * @return HTMLForm $this for chaining calls
         */
diff --git a/tests/phpunit/includes/htmlform/HTMLFormTest.php 
b/tests/phpunit/includes/htmlform/HTMLFormTest.php
index 98511ca..f74f60a 100644
--- a/tests/phpunit/includes/htmlform/HTMLFormTest.php
+++ b/tests/phpunit/includes/htmlform/HTMLFormTest.php
@@ -2,22 +2,56 @@
 
 /**
  * @covers HTMLForm
+ *
+ * @licence GNU GPL v2+
+ * @author Gergő Tisza
+ * @author Thiemo Mättig
  */
 class HTMLFormTest extends MediaWikiTestCase {
-       public function testGetHTML_empty() {
+
+       private function newInstance() {
                $form = new HTMLForm( [] );
                $form->setTitle( Title::newFromText( 'Foo' ) );
+               return $form;
+       }
+
+       public function testGetHTML_empty() {
+               $form = $this->newInstance();
                $form->prepareForm();
                $html = $form->getHTML( false );
-               $this->assertRegExp( '/<form\b/', $html );
+               $this->assertStringStartsWith( '<form ', $html );
        }
 
        /**
         * @expectedException LogicException
         */
        public function testGetHTML_noPrepare() {
-               $form = new HTMLForm( [] );
-               $form->setTitle( Title::newFromText( 'Foo' ) );
+               $form = $this->newInstance();
                $form->getHTML( false );
        }
+
+       public function testAutocompleteDefaultsToNull() {
+               $form = $this->newInstance();
+               $this->assertNotContains( 'autocomplete', $form->wrapForm( '' ) 
);
+       }
+
+       public function testAutocompleteWhenSetToNull() {
+               $form = $this->newInstance();
+               $form->setAutocomplete( null );
+               $this->assertNotContains( 'autocomplete', $form->wrapForm( '' ) 
);
+       }
+
+       public function testAutocompleteWhenSetToFalse() {
+               $form = $this->newInstance();
+               // Previously false was used instead of null to indicate the 
attribute should not be set
+               $form->setAutocomplete( false );
+               $this->assertNotContains( 'autocomplete', $form->wrapForm( '' ) 
);
+       }
+
+       public function testAutocompleteWhenSetToOff() {
+               $form = $this->newInstance();
+               $form->setAutocomplete( 'off' );
+               $this->assertContains( ' autocomplete="off"', $form->wrapForm( 
'' ) );
+       }
+
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifb17c88e39df7031054b3bee83772172c64d0a6b
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Gerrit Patch Uploader <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Fomafix <[email protected]>
Gerrit-Reviewer: Gerrit Patch Uploader <[email protected]>
Gerrit-Reviewer: Luke081515 <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Thiemo Kreuz (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to