diff --git a/src/Browser.php b/src/Browser.php index ff9cbf2..af639b0 100644 --- a/src/Browser.php +++ b/src/Browser.php @@ -281,6 +281,12 @@ final public function selectFieldOption(string $selector, string $value): self */ final public function selectFieldOptions(string $selector, array $values): self { + if (empty($values)) { + $this->session->page()->fillField($selector, $values); + + return $this; + } + foreach ($values as $value) { $this->session()->page()->selectFieldOption($selector, $value, true); } diff --git a/tests/BrowserTests.php b/tests/BrowserTests.php index e332a76..8738fee 100644 --- a/tests/BrowserTests.php +++ b/tests/BrowserTests.php @@ -389,6 +389,7 @@ public function form_actions_by_field_label(): void ->selectFieldOption('Input 4', 'option 2') ->attachFile('Input 5', new \SplFileInfo(__FILE__)) ->selectFieldOptions('Input 6', ['option 1', 'option 3']) + ->selectFieldOptions('Input 7', []) ->checkField('Radio 3') ->click('Submit') ->assertOn('/submit-form') @@ -398,6 +399,7 @@ public function form_actions_by_field_label(): void ->assertContains('"input_4":"option 2"') ->assertContains(\sprintf('"input_5":"%s"', \pathinfo(__FILE__, \PATHINFO_BASENAME))) ->assertContains('"input_6":["option 1","option 3"]') + ->assertNotContains('"input_7') ->assertContains('"input_8":"option 3"') ; } @@ -415,6 +417,7 @@ public function form_actions_by_field_id(): void ->selectFieldOption('input4', 'option 2') ->attachFile('input5', __FILE__) ->selectFieldOptions('input6', ['option 1', 'option 3']) + ->selectFieldOptions('input7', []) ->checkField('radio3') ->click('Submit') ->assertOn('/submit-form') @@ -424,6 +427,7 @@ public function form_actions_by_field_id(): void ->assertContains('"input_4":"option 2"') ->assertContains(\sprintf('"input_5":"%s"', \pathinfo(__FILE__, \PATHINFO_BASENAME))) ->assertContains('"input_6":["option 1","option 3"]') + ->assertNotContains('"input_7') ->assertContains('"input_8":"option 3"') ; }