BrowserSession::hoverField()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 6
ccs 2
cts 2
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace SP\Spiderling;
4
5
use Countable;
6
use SP\Spiderling\Query;
7
8
/**
9
 * @author    Ivan Kerin <[email protected]>
10
 * @copyright 2015, Clippings Ltd.
11
 * @license   http://spdx.org/licenses/BSD-3-Clause
12
 */
13
class BrowserSession extends CrawlerSession
14
{
15
    /**
16
     * @var BrowserInterface
17
     */
18
    private $browser;
19
20
    /**
21
     * @param BrowserInterface $browser
22
     */
23
    public function __construct(BrowserInterface $browser) {
24
25
        $this->browser = $browser;
26
27
        parent::__construct($browser);
28
    }
29
30
    /**
31
     * @return BrowserInterface
32
     */
33 1
    public function getBrowser()
34
    {
35 1
        return $this->browser;
36
    }
37
38
    /**
39
     * @return string
40
     */
41
    public function getAlertText()
42
    {
43
        return $this->browser->getAlertText();
44
    }
45
46
    /**
47
     * @param  string $confirm
48
     */
49 1
    public function confirm($confirm)
50
    {
51
        $this->browser->confirm($confirm);
52
53 1
        return $this;
54
    }
55
56
    /**
57
     * @return self
58
     */
59 1
    public function removeAllCookies()
60
    {
61
        $this->browser->removeAllCookies();
62
63 1
        return $this;
64
    }
65
66
    /**
67
     * @param  string $javascript
68
     * @return mixed
69
     */
70
    public function executeJs($javascript)
71
    {
72
        return $this->browser->executeJs($javascript);
73
    }
74
75
    /**
76
     * @param  string $filename
77
     * @throws InvalidArgumentException if directory doesnt exist or is not writable
78
     * @return self
79
     */
80 1
    public function saveScreenshot($filename)
81
    {
82
        $this->ensureWritableDirectory(dirname($filename));
83
84
        $this->browser->saveScreenshot($filename);
85
86 1
        return $this;
87
    }
88
89
    /**
90
     * @param  Node   $node
91
     * @return self
92
     */
93 1
    public function hoverNode(Node $node)
94
    {
95
        $this->browser->moveMouseTo($node->getId());
96
97 1
        return $this;
98 1
    }
99
100
    /**
101
     * @param  string $selector
102
     * @return self
103
     */
104 1
    public function hover($selector)
105
    {
106
        $this->hoverNode($this->get($selector));
107
108 1
        return $this;
109
    }
110
111
    /**
112
     * @param  string $selector
113
     * @return self
114
     */
115 1
    public function hoverButton($selector)
116
    {
117
        $this->hoverNode($this->getButton($selector));
118
119 1
        return $this;
120
    }
121
122
    /**
123
     * @param  string $selector
124
     * @return self
125
     */
126 1
    public function hoverField($selector)
127
    {
128
        $this->hoverNode($this->getField($selector));
129
130 1
        return $this;
131
    }
132
}
133