public function test_get_locator_parameters() { $locator = Node::get_locator('.body', array('at' => 1)); $this->assertEquals('css', $locator->type()); $this->assertEquals('.body', $locator->selector()); $this->assertEquals(array('at' => 1), $locator->filters()); $locator = Node::get_locator(array('field', 'username', array('value' => 2))); $this->assertEquals('field', $locator->type()); $this->assertEquals('username', $locator->selector()); $this->assertEquals(array('value' => 2), $locator->filters()); $locator = Node::get_locator(array('field', array('label', 'username', array('value' => 2)))); $this->assertEquals('label', $locator->type()); $this->assertEquals('username', $locator->selector()); $this->assertEquals(array('value' => 2), $locator->filters()); }
/** * Try matching "attributes" filter * * @param Node $item * @param integer $index * @param array $value * @return boolean */ public function filter_by_attributes(Node $item, $index, array $value) { foreach ($value as $attribute_name => $attribute_val) { if ($item->attribute($attribute_name) != $attribute_val) { return FALSE; } } return TRUE; }