Merge "RCFilters: Use findRelativeSelectableItem instead of getRelativeSelectableitem"
[lhc/web/wiklou.git] / includes / changes / ChangesListBooleanFilter.php
index 913bd38..2a7ba88 100644 (file)
@@ -127,7 +127,7 @@ class ChangesListBooleanFilter extends ChangesListFilter {
                }
 
                if ( isset( $filterDefinition['default'] ) ) {
-                       $this->defaultValue = $filterDefinition['default'];
+                       $this->setDefault( $filterDefinition['default'] );
                } else {
                        throw new MWException( 'You must set a default' );
                }
@@ -156,12 +156,14 @@ class ChangesListBooleanFilter extends ChangesListFilter {
        }
 
        /**
-        * Sets default
+        * Sets default.  It must be a boolean.
+        *
+        * It will be coerced to boolean.
         *
         * @param bool $defaultValue
         */
        public function setDefault( $defaultValue ) {
-               $this->defaultValue = $defaultValue;
+               $this->defaultValue = (bool)$defaultValue;
        }
 
        /**
@@ -236,9 +238,12 @@ class ChangesListBooleanFilter extends ChangesListFilter {
         */
        public function isSelected( FormOptions $opts ) {
                return !$opts[ $this->getName() ] &&
-                       array_filter( $this->getSiblings(), function ( $sibling ) use ( $opts ) {
-                               return $opts[ $sibling->getName() ];
-                       } );
+                       array_filter(
+                               $this->getSiblings(),
+                               function ( ChangesListBooleanFilter $sibling ) use ( $opts ) {
+                                       return $opts[ $sibling->getName() ];
+                               }
+                       );
        }
 
        /**