Unverified Commit 089376cf authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3172166 by Pooja Ganjage, ekes, Megha_kundar, tstoeckler, mbovan,...

Issue #3172166 by Pooja Ganjage, ekes, Megha_kundar, tstoeckler, mbovan, Spokje, alexpott: Element::properties() produces notices if given an array with integer keys

(cherry picked from commit 60a42060)
parent 1a7b5c23
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ class Element {
   *   TRUE of the key is a property, FALSE otherwise.
   */
  public static function property($key) {
    return $key[0] == '#';
    return is_string($key) && $key[0] == '#';
  }

  /**
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ public function testProperty() {
    $this->assertTrue(Element::property('#property'));
    $this->assertFalse(Element::property('property'));
    $this->assertFalse(Element::property('property#'));
    $this->assertFalse(Element::property(0));
  }

  /**
@@ -29,13 +30,16 @@ public function testProperties() {
      '#property1' => 'property1',
      '#property2' => 'property2',
      'property3' => 'property3',
      0 => [],
    ];

    $properties = Element::properties($element);

    $this->assertCount(2, $properties);
    $this->assertContains('#property1', $properties);
    $this->assertContains('#property2', $properties);
    $this->assertNotContains('property3', $properties);
    $this->assertNotContains(0, $properties);
  }

  /**