A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/seleniumhq/selenium/commit/ff88671fb8cb4d408ca7b70aa696b30ccce19b15 below:

#10812 don't allow selecting a disabled option (#10814) · SeleniumHQ/selenium@ff88671 · GitHub

20 20

import static java.util.Collections.emptyList;

21 21

import static org.assertj.core.api.Assertions.assertThat;

22 22

import static org.assertj.core.api.Assertions.assertThatExceptionOfType;

23 +

import static org.assertj.core.api.Assertions.assertThatThrownBy;

23 24

import static org.mockito.Mockito.mock;

24 25

import static org.mockito.Mockito.never;

25 26

import static org.mockito.Mockito.verify;

@@ -74,6 +75,7 @@ private WebElement mockSelectWebElement(String multiple) {

74 75

final WebElement element = mock(WebElement.class);

75 76

when(element.getTagName()).thenReturn("select");

76 77

when(element.getDomAttribute("multiple")).thenReturn(multiple);

78 +

when(element.isEnabled()).thenReturn(true);

77 79

return element;

78 80

}

79 81

@@ -93,12 +95,14 @@ public void shouldReturnAllOptionsWhenAsked() {

93 95 94 96

private WebElement mockOption(String name, boolean isSelected) {

95 97

final WebElement optionBad = mock(WebElement.class, name);

98 +

when(optionBad.isEnabled()).thenReturn(true);

96 99

when(optionBad.isSelected()).thenReturn(isSelected);

97 100

return optionBad;

98 101

}

99 102 100 103

private WebElement mockOption(String name, boolean isSelected, int index) {

101 104

WebElement option = mockOption(name, isSelected);

105 +

when(option.isEnabled()).thenReturn(true);

102 106

when(option.getAttribute("index")).thenReturn(String.valueOf(index));

103 107

return option;

104 108

}

@@ -151,6 +155,40 @@ public void shouldAllowOptionsToBeSelectedByVisibleText() {

151 155

verify(firstOption).click();

152 156

}

153 157 158 +

@Test

159 +

public void shouldNotAllowDisabledOptionsToBeSelected() {

160 +

final WebElement firstOption = mockOption("first", false);

161 +

when(firstOption.isEnabled()).thenReturn(false);

162 + 163 +

final WebElement element = mockSelectWebElement("multiple");

164 +

when(element.findElements(By.xpath(".//option[normalize-space(.) = \"fish\"]")))

165 +

.thenReturn(Collections.singletonList(firstOption));

166 + 167 +

Select select = new Select(element);

168 +

assertThatThrownBy(() -> select.selectByVisibleText("fish"))

169 +

.isInstanceOf(UnsupportedOperationException.class)

170 +

.hasMessage("You may not select a disabled option");

171 + 172 +

verify(firstOption, never()).click();

173 +

}

174 + 175 +

@Test

176 +

public void shouldNotAllowOptionsToBeSelectedInDisabledSelect() {

177 +

final WebElement firstOption = mockOption("first", false);

178 + 179 +

final WebElement element = mockSelectWebElement("multiple");

180 +

when(element.isEnabled()).thenReturn(false);

181 +

when(element.findElements(By.xpath(".//option[normalize-space(.) = \"fish\"]")))

182 +

.thenReturn(Collections.singletonList(firstOption));

183 + 184 +

Select select = new Select(element);

185 +

assertThatThrownBy(() -> select.selectByVisibleText("fish"))

186 +

.isInstanceOf(UnsupportedOperationException.class)

187 +

.hasMessage("You may not select an option in disabled select");

188 + 189 +

verify(firstOption, never()).click();

190 +

}

191 + 154 192

@Test

155 193

public void shouldAllowOptionsToBeSelectedByIndex() {

156 194

final WebElement firstOption = mockOption("first", true, 0);

@@ -252,6 +290,7 @@ public void shouldFallBackToSlowLooksUpsWhenGetByVisibleTextFailsAndThereIsASpac

252 290

when(element.findElements(xpath1)).thenReturn(emptyList());

253 291

when(element.findElements(xpath2)).thenReturn(Collections.singletonList(firstOption));

254 292

when(firstOption.getText()).thenReturn("foo bar");

293 +

when(firstOption.isEnabled()).thenReturn(true);

255 294 256 295

Select select = new Select(element);

257 296

select.selectByVisibleText("foo bar");


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4