Skip to content

Commit a72f3ee

Browse files
committed
Support extensions of Browser - resolves #5
- Actor#using creates a Stage using the inferred type from the Browser argument - Action and Assertion are parametrizable with <T extends Browser> - Unchecked raw-type warnings in BrowserAssertions but these are ignored to preserve the DSL
1 parent 84aea81 commit a72f3ee

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

src/main/java/co/unruly/flick/browser/Stage.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package co.unruly.flick.browser;
22

3-
public class Stage {
4-
private final Browser browser;
3+
public class Stage<T extends Browser> {
4+
private final T browser;
55
private Page page;
66

7-
public Stage(Browser browser, Page page) {
7+
public Stage(T browser, Page page) {
88
this.browser = browser;
99
this.page = page;
1010
}

src/main/java/co/unruly/flick/dsl/Action.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import co.unruly.flick.browser.Browser;
44

5-
public interface Action {
6-
void performOn(Browser browser);
5+
public interface Action<T extends Browser> {
6+
void performOn(T browser);
77
}

src/main/java/co/unruly/flick/dsl/Actor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
import co.unruly.flick.browser.Stage;
77

88
public interface Actor {
9-
default Stage using(Browser browser, Page page) {
10-
return new Stage(browser, page);
9+
default <T extends Browser> Stage<T> using(T browser, Page page) {
10+
return new Stage<>(browser, page);
1111
}
1212

13-
default Stage using(Browser browser, String url) {
14-
return new Stage(browser, browser.load(url));
13+
default <T extends Browser> Stage<T> using(T browser, String url) {
14+
return new Stage<>(browser, browser.load(url));
1515
}
1616
}

src/main/java/co/unruly/flick/dsl/Assertion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import co.unruly.flick.browser.Browser;
44

5-
public interface Assertion {
6-
void check(Browser browser);
5+
public interface Assertion<T extends Browser> {
6+
void check(T browser);
77
}

0 commit comments

Comments
 (0)