xref: /plugin/combo/vendor/php-webdriver/webdriver/lib/WebDriverCheckboxes.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeaunamespace Facebook\WebDriver;
4*04fd306cSNickeau
5*04fd306cSNickeauuse Facebook\WebDriver\Exception\WebDriverException;
6*04fd306cSNickeau
7*04fd306cSNickeau/**
8*04fd306cSNickeau * Provides helper methods for checkboxes.
9*04fd306cSNickeau */
10*04fd306cSNickeauclass WebDriverCheckboxes extends AbstractWebDriverCheckboxOrRadio
11*04fd306cSNickeau{
12*04fd306cSNickeau    public function __construct(WebDriverElement $element)
13*04fd306cSNickeau    {
14*04fd306cSNickeau        parent::__construct($element);
15*04fd306cSNickeau
16*04fd306cSNickeau        $this->type = $element->getAttribute('type');
17*04fd306cSNickeau        if ($this->type !== 'checkbox') {
18*04fd306cSNickeau            throw new WebDriverException('The input must be of type "checkbox".');
19*04fd306cSNickeau        }
20*04fd306cSNickeau    }
21*04fd306cSNickeau
22*04fd306cSNickeau    public function isMultiple()
23*04fd306cSNickeau    {
24*04fd306cSNickeau        return true;
25*04fd306cSNickeau    }
26*04fd306cSNickeau
27*04fd306cSNickeau    public function deselectAll()
28*04fd306cSNickeau    {
29*04fd306cSNickeau        foreach ($this->getRelatedElements() as $checkbox) {
30*04fd306cSNickeau            $this->deselectOption($checkbox);
31*04fd306cSNickeau        }
32*04fd306cSNickeau    }
33*04fd306cSNickeau
34*04fd306cSNickeau    public function deselectByIndex($index)
35*04fd306cSNickeau    {
36*04fd306cSNickeau        $this->byIndex($index, false);
37*04fd306cSNickeau    }
38*04fd306cSNickeau
39*04fd306cSNickeau    public function deselectByValue($value)
40*04fd306cSNickeau    {
41*04fd306cSNickeau        $this->byValue($value, false);
42*04fd306cSNickeau    }
43*04fd306cSNickeau
44*04fd306cSNickeau    public function deselectByVisibleText($text)
45*04fd306cSNickeau    {
46*04fd306cSNickeau        $this->byVisibleText($text, false, false);
47*04fd306cSNickeau    }
48*04fd306cSNickeau
49*04fd306cSNickeau    public function deselectByVisiblePartialText($text)
50*04fd306cSNickeau    {
51*04fd306cSNickeau        $this->byVisibleText($text, true, false);
52*04fd306cSNickeau    }
53*04fd306cSNickeau}
54