Skip to content

Commit bc9fd27

Browse files
Fixes link assertion with single or double quote (#965)
* Fixes link assertion with single or double quote Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * Update InteractsWithElements.php * Update MakesAssertions.php Co-authored-by: Taylor Otwell <[email protected]>
1 parent 4c2f1d2 commit bc9fd27

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

src/Concerns/InteractsWithElements.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,11 @@ public function clickLink($link, $element = 'a')
4545
{
4646
$this->ensurejQueryIsAvailable();
4747

48-
$selector = addslashes(trim($this->resolver->format("{$element}:contains({$link}):visible")));
48+
$selector = addslashes(trim($this->resolver->format("{$element}")));
4949

50-
$this->driver->executeScript("jQuery.find(\"{$selector}\")[0].click();");
50+
$link = str_replace("'", "\\\\'", $link);
51+
52+
$this->driver->executeScript("jQuery.find(`{$selector}:contains('{$link}'):visible`)[0].click();");
5153

5254
return $this;
5355
}

src/Concerns/MakesAssertions.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,10 +355,12 @@ public function seeLink($link)
355355
{
356356
$this->ensurejQueryIsAvailable();
357357

358-
$selector = addslashes(trim($this->resolver->format("a:contains('{$link}')")));
358+
$selector = addslashes(trim($this->resolver->format('a')));
359+
360+
$link = str_replace("'", "\\\\'", $link);
359361

360362
$script = <<<JS
361-
var link = jQuery.find("{$selector}");
363+
var link = jQuery.find(`{$selector}:contains('{$link}')`);
362364
return link.length > 0 && jQuery(link).is(':visible');
363365
JS;
364366

tests/WaitsForElementsTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,13 @@ public function test_wait_for_link()
257257
{
258258
$driver = m::mock(stdClass::class);
259259
$driver->shouldReceive('executeScript')
260-
->times(2)
260+
->times(3)
261261
->andReturnTrue();
262262

263263
$link = 'https://laravel.com/docs/8.x/dusk';
264264

265265
$script = <<<JS
266-
var link = jQuery.find("body a:contains(\'{$link}\')");
266+
var link = jQuery.find(`body a:contains('{$link}')`);
267267
return link.length > 0 && jQuery(link).is(':visible');
268268
JS;
269269

0 commit comments

Comments
 (0)