Skip to content

Commit 4cf6883

Browse files
committed
update class pass
1 parent 1475889 commit 4cf6883

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

playwright/src/test/java/com/microsoft/playwright/TestLocatorAssertions.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import com.microsoft.playwright.assertions.LocatorAssertions;
2020
import com.microsoft.playwright.assertions.PlaywrightAssertions;
21+
import com.microsoft.playwright.assertions.LocatorAssertions.ContainsClassOptions;
22+
2123
import org.junit.jupiter.api.Test;
2224
import org.opentest4j.AssertionFailedError;
2325

@@ -1109,4 +1111,49 @@ void defaultTimeoutZeroHasTextPass() {
11091111
// Restore default.
11101112
PlaywrightAssertions.setDefaultAssertionTimeout(5_000);
11111113
}
1114+
1115+
@Test
1116+
void containsClassPass() {
1117+
page.setContent("<div class='foo bar baz'></div>");
1118+
Locator locator = page.locator("div");
1119+
assertThat(locator).containsClass("");
1120+
assertThat(locator).containsClass("bar");
1121+
assertThat(locator).containsClass("baz bar");
1122+
assertThat(locator).containsClass(" bar foo ");
1123+
assertThat(locator).not().containsClass(" baz not-matching");
1124+
}
1125+
1126+
@Test
1127+
void containsClassPassWithSvgs() {
1128+
page.setContent("<svg class='c1 c2' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'></svg>");
1129+
assertThat(page.locator("svg")).containsClass("c1");
1130+
assertThat(page.locator("svg")).containsClass("c2 c1");
1131+
}
1132+
1133+
@Test
1134+
void containsClassFail() {
1135+
page.setContent("<div class='bar baz'></div>");
1136+
AssertionFailedError e = assertThrows(AssertionFailedError.class, () -> {
1137+
assertThat(page.locator("div")).containsClass("does-not-exist", new ContainsClassOptions().setTimeout(1000));
1138+
});
1139+
assertTrue(e.getMessage().contains("Locator.expect with timeout 1000ms"), e.getMessage());
1140+
}
1141+
1142+
@Test
1143+
void containsClassPassWithArray() {
1144+
page.setContent("<div class='foo'></div><div class='hello bar'></div><div class='baz'></div>");
1145+
Locator locator = page.locator("div");
1146+
assertThat(locator).containsClass(asList("foo", "hello", "baz"));
1147+
assertThat(locator).not().hasClass(new String[]{"not-there", "hello", "baz"}); // Class not there
1148+
assertThat(locator).not().hasClass(new String[]{"foo", "hello"}); // length mismatch
1149+
}
1150+
1151+
@Test
1152+
void containsClassFailWithArray() {
1153+
page.setContent("<div class='foo'></div><div class='bar'></div><div class='bar'></div>");
1154+
AssertionFailedError e = assertThrows(AssertionFailedError.class, () -> {
1155+
assertThat(page.locator("div")).containsClass(asList("foo", "bar", "baz"), new ContainsClassOptions().setTimeout(1000));
1156+
});
1157+
assertTrue(e.getMessage().contains("Locator.expect with timeout 1000ms"), e.getMessage());
1158+
}
11121159
}

0 commit comments

Comments
 (0)