Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit 7b82713

Browse files
authored
Merge pull request #14 from slu-it/test-optimization
JUnit Runner Tests and Missing Hamcrest Documentation
2 parents b0e0a30 + c5a171b commit 7b82713

File tree

107 files changed

+3548
-1308
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+3548
-1308
lines changed

documentation/chapters/support-junit4.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public class DifferentBrowserFactoriesTest {
9898

9999
## @EntryPoint
100100
In order for a `Browser` to be automatically navigated to an applications entry point before each test,
101-
the `@EntryPoint` annotation can used. The navigation at the beginning of each test is done weather or not a `Browser` is static!
101+
the `@EntryPoint` annotation can used. The navigation at the beginning of each test is done whether or not a `Browser` is static!
102102

103103
### Example
104104
```java

webtester-core/src/main/java/info/novatec/testit/webtester/adhoc/AdHocFinder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public AdHocFinder(Browser browser) {
6161
* @since 2.0
6262
*/
6363
public AdHocFinder(PageFragment parent) {
64-
this.factory = new PageFragmentFactory(parent.getBrowser());
64+
this.factory = new PageFragmentFactory(parent.browser());
6565
this.searchContext = parent.webElement();
6666
}
6767

webtester-core/src/main/java/info/novatec/testit/webtester/css/DefaultStyleChanger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public boolean changeStyleInformation(PageFragment pageFragment, Map<String, Str
2424

2525
private boolean changeStyleWithScript(PageFragment fragment, String script) {
2626
try {
27-
fragment.getBrowser().javaScript().execute(script, fragment);
27+
fragment.browser().javaScript().execute(script, fragment);
2828
return true;
2929
} catch (WebDriverException e) {
3030
log.warn("Exception while changing the style information of an page object: {}", e.getMessage());

webtester-core/src/main/java/info/novatec/testit/webtester/internal/ActionTemplate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public static class PageFragmentAction<T extends PageFragment> extends Action<T,
104104
private Marker marker;
105105

106106
public PageFragmentAction(T subject) {
107-
super(subject, subject.getBrowser());
107+
super(subject, subject.browser());
108108
marker = new Marker(new DefaultStyleChanger());
109109
}
110110

@@ -133,7 +133,7 @@ public static class PageFragmentsAction<T extends PageFragment> extends BiAction
133133
private Marker marker;
134134

135135
public PageFragmentsAction(T subject1, T subject2) {
136-
super(subject1, subject2, subject1.getBrowser());
136+
super(subject1, subject2, subject1.browser());
137137
marker = new Marker(new DefaultStyleChanger());
138138
}
139139

webtester-core/src/main/java/info/novatec/testit/webtester/internal/OffersBrowserGetter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ public interface OffersBrowserGetter {
1414
* @since 2.0
1515
*/
1616
@ReturnsBrowser
17-
Browser getBrowser();
17+
Browser browser();
1818

1919
}

webtester-core/src/main/java/info/novatec/testit/webtester/internal/TestItHome.java

Lines changed: 0 additions & 68 deletions
This file was deleted.

webtester-core/src/main/java/info/novatec/testit/webtester/internal/configuration/NamedProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public enum NamedProperties {
88

9-
@Documentation("Weather or not the events should be fired.")
9+
@Documentation("Whether or not the events should be fired.")
1010
@TypeDefinition(Constants.BOOLEAN)
1111
@DefaultValue("true")
1212
EVENTS("events.enabled"),

webtester-core/src/main/java/info/novatec/testit/webtester/internal/proxies/PageFragmentProxyHandler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import info.novatec.testit.webtester.internal.proxies.impls.WebElementReturningImpl;
3636
import info.novatec.testit.webtester.pagefragments.PageFragment;
3737
import info.novatec.testit.webtester.pagefragments.mapping.MappingValidator;
38-
import info.novatec.testit.webtester.pagefragments.mapping.MappingValidatorImpl;
38+
import info.novatec.testit.webtester.pagefragments.mapping.DefaultMappingValidator;
3939

4040

4141
@Builder
@@ -103,7 +103,7 @@ public static PageFragmentProxyHandler fromModel(PageFragmentModel model) {
103103

104104
Browser browser = model.getBrowser();
105105
Class<? extends PageFragment> pageFragmentClass = model.getType();
106-
MappingValidator validator = new MappingValidatorImpl(pageFragmentClass);
106+
MappingValidator validator = new DefaultMappingValidator(pageFragmentClass);
107107
Supplier<WebElement> webElementSupplier = () -> {
108108
SearchContext searchContext = model.getSearchContextSupplier().get();
109109
By by = model.getBy();
@@ -129,7 +129,7 @@ public static PageFragmentProxyHandler fromModel(PageFragmentModel model) {
129129
public static PageFragmentProxyHandler forWebElement(Browser browser, WebElement webElement,
130130
Class<? extends PageFragment> pageFragmentClass) {
131131

132-
MappingValidator validator = new MappingValidatorImpl(pageFragmentClass);
132+
MappingValidator validator = new DefaultMappingValidator(pageFragmentClass);
133133
Supplier<WebElement> webElementSupplier = () -> webElement;
134134
EventProducingImplementationDecorator eventDecorator =
135135
new EventProducingImplementationDecorator(browser, webElementSupplier);

webtester-core/src/main/java/info/novatec/testit/webtester/markings/Marker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public Marker(StyleChanger styleChanger) {
3939
* @since 2.0
4040
*/
4141
public void markAsRead(PageFragment fragment) {
42-
Configuration configuration = fragment.getBrowser().configuration();
42+
Configuration configuration = fragment.browser().configuration();
4343
if (configuration.isMarkingsEnabled()) {
4444
Color backgroundColor = configuration.getMarkingsColorReadBackground();
4545
Color outlineColor = configuration.getMarkingsColorReadOutline();
@@ -58,7 +58,7 @@ public void markAsRead(PageFragment fragment) {
5858
* @since 2.0
5959
*/
6060
public void markAsUsed(PageFragment pageFragment) {
61-
Configuration configuration = pageFragment.getBrowser().configuration();
61+
Configuration configuration = pageFragment.browser().configuration();
6262
if (configuration.isMarkingsEnabled()) {
6363
Color backgroundColor = configuration.getMarkingsColorUsedBackground();
6464
Color outlineColor = configuration.getMarkingsColorUsedOutline();
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package info.novatec.testit.webtester.mouse;
2+
3+
import static info.novatec.testit.webtester.conditions.Conditions.visible;
4+
5+
import java.util.Arrays;
6+
import java.util.Collection;
7+
import java.util.function.BiFunction;
8+
9+
import org.openqa.selenium.TimeoutException;
10+
import org.openqa.selenium.WebElement;
11+
import org.openqa.selenium.interactions.Actions;
12+
13+
import info.novatec.testit.webtester.events.pagefragments.ClickedEvent;
14+
import info.novatec.testit.webtester.events.pagefragments.ContextClickedEvent;
15+
import info.novatec.testit.webtester.events.pagefragments.DoubleClickedEvent;
16+
import info.novatec.testit.webtester.internal.ActionTemplate;
17+
import info.novatec.testit.webtester.pagefragments.PageFragment;
18+
import info.novatec.testit.webtester.waiting.Wait;
19+
20+
21+
/**
22+
* The default implementation of a {@link MouseDriver}.
23+
*
24+
* @since 2.0
25+
*/
26+
public class DefaultMouseDriver implements MouseDriver {
27+
28+
@Override
29+
public void click(PageFragment fragment) {
30+
ActionTemplate.pageFragment(fragment)
31+
.execute((f) -> perform(f, Actions::click))
32+
.fireEvent(ClickedEvent::new)
33+
.markAsUsed();
34+
}
35+
36+
@Override
37+
public void doubleClick(PageFragment fragment) {
38+
ActionTemplate.pageFragment(fragment)
39+
.execute((f) -> perform(f, Actions::doubleClick))
40+
.fireEvent(DoubleClickedEvent::new)
41+
.markAsUsed();
42+
}
43+
44+
@Override
45+
public void contextClick(PageFragment fragment) {
46+
ActionTemplate.pageFragment(fragment)
47+
.execute((f) -> perform(f, Actions::contextClick))
48+
.fireEvent(ContextClickedEvent::new)
49+
.markAsUsed();
50+
}
51+
52+
@Override
53+
public void moveToEach(PageFragment fragment, PageFragment... fragments) throws TimeoutException {
54+
moveTo(fragment);
55+
moveToEach(Arrays.asList(fragments));
56+
}
57+
58+
@Override
59+
public void moveToEach(Collection<PageFragment> fragments) throws TimeoutException {
60+
fragments.forEach(this::moveTo);
61+
}
62+
63+
@Override
64+
public void moveTo(PageFragment fragment) throws TimeoutException {
65+
ActionTemplate.pageFragment(fragment).execute((f) -> {
66+
Wait.until(f).is(visible());
67+
perform(f, Actions::moveToElement);
68+
});
69+
}
70+
71+
private void perform(PageFragment fragment, BiFunction<Actions, WebElement, Actions> biConsumer) {
72+
biConsumer.apply(sequenceFor(fragment), fragment.webElement()).perform();
73+
}
74+
75+
private Actions sequenceFor(PageFragment fragment) {
76+
return new Actions(fragment.browser().webDriver());
77+
}
78+
79+
}

0 commit comments

Comments
 (0)