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

Commit 81441f1

Browse files
authored
Merge pull request #10 from slu-it/test-optimization
Test optimization
2 parents b3b1534 + f39bd3b commit 81441f1

File tree

83 files changed

+1877
-853
lines changed

Some content is hidden

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

83 files changed

+1877
-853
lines changed

webtester-core/src/main/java/info/novatec/testit/webtester/WebTesterException.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ protected WebTesterException(String message) {
1212
super(message);
1313
}
1414

15-
protected WebTesterException(Throwable cause) {
16-
super(cause);
17-
}
18-
1915
protected WebTesterException(String message, Throwable cause) {
2016
super(message, cause);
2117
}

webtester-core/src/main/java/info/novatec/testit/webtester/browser/WebDriverBrowser.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@
55

66
import lombok.extern.slf4j.Slf4j;
77

8+
import info.novatec.testit.webtester.adhoc.AdHocFinder;
89
import info.novatec.testit.webtester.browser.operations.AlertHandler;
10+
import info.novatec.testit.webtester.browser.operations.CurrentWindow;
911
import info.novatec.testit.webtester.browser.operations.FocusSetter;
1012
import info.novatec.testit.webtester.browser.operations.JavaScriptExecutor;
1113
import info.novatec.testit.webtester.browser.operations.Navigator;
12-
import info.novatec.testit.webtester.browser.operations.UrlOpener;
1314
import info.novatec.testit.webtester.browser.operations.PageSourceSaver;
1415
import info.novatec.testit.webtester.browser.operations.ScreenshotTaker;
15-
import info.novatec.testit.webtester.browser.operations.CurrentWindow;
16+
import info.novatec.testit.webtester.browser.operations.UrlOpener;
1617
import info.novatec.testit.webtester.config.Configuration;
1718
import info.novatec.testit.webtester.config.builders.DefaultConfigurationBuilder;
1819
import info.novatec.testit.webtester.events.EventSystem;
1920
import info.novatec.testit.webtester.events.EventSystemImpl;
2021
import info.novatec.testit.webtester.events.browser.ClosedBrowserEvent;
2122
import info.novatec.testit.webtester.internal.PageFactory;
2223
import info.novatec.testit.webtester.pages.Page;
23-
import info.novatec.testit.webtester.adhoc.AdHocFinder;
2424

2525

2626
/**
@@ -44,7 +44,6 @@
4444
public final class WebDriverBrowser implements Browser {
4545

4646
private final Configuration configuration;
47-
4847
private final WebDriver webDriver;
4948

5049
private final UrlOpener open;
@@ -54,11 +53,12 @@ public final class WebDriverBrowser implements Browser {
5453
private final ScreenshotTaker screenshot;
5554
private final PageSourceSaver pageSource;
5655
private final JavaScriptExecutor javaScript;
56+
private final FocusSetter focus;
5757
private final EventSystem eventSystem;
58+
5859
private final AdHocFinder adHocFinder;
5960
private final PageFactory pageFactory;
6061

61-
private final FocusSetter focus;
6262
private boolean closed;
6363

6464
private WebDriverBrowser(Configuration configuration, WebDriver webDriver) {
@@ -75,6 +75,7 @@ private WebDriverBrowser(Configuration configuration, WebDriver webDriver) {
7575
this.javaScript = new JavaScriptExecutor(this);
7676
this.focus = new FocusSetter(this);
7777
this.eventSystem = new EventSystemImpl(this);
78+
7879
this.adHocFinder = new AdHocFinder(this);
7980
this.pageFactory = new PageFactory(this);
8081

@@ -89,15 +90,9 @@ public <T extends Page> T create(Class<T> pageClass) {
8990
public void close() {
9091
if (!closed) {
9192
log.debug("closing browser {}", this);
92-
try {
93-
EventSystem events = events();
94-
if(events.isEnabled()) {
95-
events.fireEvent(new ClosedBrowserEvent());
96-
}
97-
} finally {
98-
webDriver().quit();
99-
closed = true;
100-
}
93+
events().fireEvent(new ClosedBrowserEvent());
94+
webDriver().quit();
95+
closed = true;
10196
} else {
10297
log.debug("browser {} already closed - ignoring call to close", this);
10398
}

webtester-core/src/main/java/info/novatec/testit/webtester/browser/operations/AlertHandler.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package info.novatec.testit.webtester.browser.operations;
22

3+
import java.util.Optional;
4+
35
import org.openqa.selenium.Alert;
46
import org.openqa.selenium.Beta;
57
import org.openqa.selenium.NoAlertPresentException;
@@ -149,11 +151,22 @@ public void decline() throws NoAlertPresentException {
149151
* @since 2.0
150152
*/
151153
public boolean isPresent() {
154+
return get().isPresent();
155+
}
156+
157+
/**
158+
* Returns the Selenium {@link Alert} instance as an optional.
159+
*
160+
* @return optional of the alert - if no alert is present the optional will be empty.
161+
* @see Alert
162+
* @see WebDriver.TargetLocator#alert()
163+
* @since 2.0
164+
*/
165+
public Optional<Alert> get() {
152166
try {
153-
webDriver().switchTo().alert();
154-
return true;
167+
return Optional.of(webDriver().switchTo().alert());
155168
} catch (NoAlertPresentException e) {
156-
return false;
169+
return Optional.empty();
157170
}
158171
}
159172

webtester-core/src/main/java/info/novatec/testit/webtester/browser/operations/JavaScriptExecutor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public void execute(String script, PageFragment fragment, Object... parameters)
4949
* @param script the JavaScript code to be executed on the current page
5050
* @param fragment the target {@link PageFragment}
5151
* @param parameters any of Boolean, Long, String, List, WebElement or null.
52+
* @param <T> the expected type of the return value
5253
* @return the return value of the JavaScript
5354
* @see JavascriptExecutor#executeScript(String, Object...)
5455
* @since 2.0
@@ -79,6 +80,7 @@ public void execute(String script, Object... parameters) {
7980
*
8081
* @param script the JavaScript code to be executed on the current page
8182
* @param parameters any of Boolean, Long, String, List, WebElement or null.
83+
* @param <T> the type of the return value is cast to before returning
8284
* @return the return value of the JavaScript
8385
* @see JavascriptExecutor#executeScript(String, Object...)
8486
* @since 2.0

webtester-core/src/main/java/info/novatec/testit/webtester/conditions/pagefragments/ReadOnly.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private boolean isXhtmlReadOnly(String value) {
3333

3434
@Override
3535
public String toString() {
36-
return "read-only";
36+
return "read only";
3737
}
3838

3939
}

webtester-core/src/main/java/info/novatec/testit/webtester/conditions/pagefragments/SelectedTexts.java

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

33
import java.util.Arrays;
44
import java.util.Collection;
5-
import java.util.HashSet;
6-
import java.util.Set;
7-
import java.util.stream.Collectors;
5+
import java.util.LinkedList;
6+
import java.util.List;
87

98
import org.apache.commons.lang.StringUtils;
109

@@ -23,7 +22,7 @@
2322
*/
2423
public class SelectedTexts implements Condition<MultiSelect> {
2524

26-
private final Set<String> expectedTexts = new HashSet<>();
25+
private final List<String> expectedTexts = new LinkedList<>();
2726

2827
public SelectedTexts(String text) {
2928
this.expectedTexts.add(text);
@@ -39,7 +38,8 @@ public SelectedTexts(Collection<String> texts) {
3938

4039
@Override
4140
public boolean test(MultiSelect select) {
42-
return expectedTexts.equals(select.streamSelectionTexts().collect(Collectors.toSet()));
41+
List<String> selectionTexts = select.getSelectionTexts();
42+
return expectedTexts.containsAll(selectionTexts) && selectionTexts.containsAll(expectedTexts);
4343
}
4444

4545
@Override

webtester-core/src/main/java/info/novatec/testit/webtester/conditions/pagefragments/SelectedValues.java

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

33
import java.util.Arrays;
44
import java.util.Collection;
5-
import java.util.HashSet;
6-
import java.util.Set;
7-
import java.util.stream.Collectors;
5+
import java.util.LinkedList;
6+
import java.util.List;
87

98
import org.apache.commons.lang.StringUtils;
109

@@ -23,7 +22,7 @@
2322
*/
2423
public class SelectedValues implements Condition<MultiSelect> {
2524

26-
private final Set<String> expectedValues = new HashSet<>();
25+
private final List<String> expectedValues = new LinkedList<>();
2726

2827
public SelectedValues(String value) {
2928
this.expectedValues.add(value);
@@ -39,7 +38,8 @@ public SelectedValues(Collection<String> values) {
3938

4039
@Override
4140
public boolean test(MultiSelect select) {
42-
return expectedValues.equals(select.streamSelectionValues().collect(Collectors.toSet()));
41+
List<String> selectionValues = select.getSelectionValues();
42+
return expectedValues.containsAll(selectionValues) && selectionValues.containsAll(expectedValues);
4343
}
4444

4545
@Override

webtester-core/src/main/java/info/novatec/testit/webtester/config/ConfigurationException.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,4 @@ protected ConfigurationException(String message) {
1414
super(message);
1515
}
1616

17-
protected ConfigurationException(Throwable cause) {
18-
super(cause);
19-
}
20-
2117
}

webtester-core/src/main/java/info/novatec/testit/webtester/config/adapters/TestItHomeFileConfigurationAdapter.java

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

webtester-core/src/main/java/info/novatec/testit/webtester/css/StyleChangerImpl.java renamed to 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
@@ -10,7 +10,7 @@
1010
import info.novatec.testit.webtester.pagefragments.PageFragment;
1111

1212
@Slf4j
13-
public class StyleChangerImpl implements StyleChanger {
13+
public class DefaultStyleChanger implements StyleChanger {
1414

1515
@Override
1616
public boolean changeStyleInformation(PageFragment pageFragment, String property, String value) {

webtester-core/src/main/java/info/novatec/testit/webtester/events/EventSystemImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@
1111
@Slf4j
1212
public class EventSystemImpl implements EventSystem {
1313

14-
private final List<EventListener> listeners = new LinkedList<>();
14+
private final List<EventListener> listeners;
1515
private final Browser browser;
1616

1717
public EventSystemImpl(Browser browser) {
18+
this.listeners = new LinkedList<>();
1819
this.browser = browser;
1920
}
2021

@@ -38,7 +39,7 @@ public void clearListeners() {
3839

3940
@Override
4041
public void fireEvent(Event event) {
41-
if(isEnabled()) {
42+
if (isEnabled() || event instanceof ExceptionEvent) {
4243
doFireEvent(event);
4344
} else {
4445
log.warn("tried to fire event '{}' but event system is disabled", event);

webtester-core/src/main/java/info/novatec/testit/webtester/events/ExceptionEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public ExceptionEvent(Throwable exception) {
2626

2727
@Override
2828
public String describe() {
29-
return "exception occurred: " + exception.getMessage();
29+
return "exception occurred: '" + exception.getMessage() + "'";
3030
}
3131

3232
}

webtester-core/src/main/java/info/novatec/testit/webtester/events/browser/AcceptedAlertEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
* @see AlertHandler#acceptIfPresent()
2424
* @since 2.0
2525
*/
26-
@SuppressWarnings("serial")
2726
@Getter
27+
@SuppressWarnings("serial")
2828
public class AcceptedAlertEvent extends AbstractEvent {
2929

3030
private final String alertMessage;
@@ -35,7 +35,7 @@ public AcceptedAlertEvent(String alertMessage) {
3535

3636
@Override
3737
public String describe() {
38-
return format("accepted an alert message with message: %s", alertMessage);
38+
return format("accepted an alert with message: '%s'", alertMessage);
3939
}
4040

4141
}

webtester-core/src/main/java/info/novatec/testit/webtester/events/browser/DeclinedAlertEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public DeclinedAlertEvent(String alertMessage) {
3535

3636
@Override
3737
public String describe() {
38-
return format("declined an alert message with message: %s", alertMessage);
38+
return format("declined an alert with message: '%s'", alertMessage);
3939
}
4040

4141
}

webtester-core/src/main/java/info/novatec/testit/webtester/events/browser/OpenedUrlEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
* @see UrlOpener#defaultEntryPoint(Class)
3030
* @since 2.0
3131
*/
32-
@SuppressWarnings("serial")
3332
@Getter
33+
@SuppressWarnings("serial")
3434
public class OpenedUrlEvent extends AbstractEvent {
3535

3636
private final String url;
@@ -41,7 +41,7 @@ public OpenedUrlEvent(String url) {
4141

4242
@Override
4343
public String describe() {
44-
return format("opened url %s", url);
44+
return format("opened url: '%s'", url);
4545
}
4646

4747
}

webtester-core/src/main/java/info/novatec/testit/webtester/events/browser/SavedSourceCodeEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import lombok.Getter;
99

1010
import info.novatec.testit.webtester.browser.operations.PageSourceSaver;
11+
import info.novatec.testit.webtester.events.AbstractEvent;
1112
import info.novatec.testit.webtester.events.Event;
1213
import info.novatec.testit.webtester.events.EventListener;
1314
import info.novatec.testit.webtester.events.EventSystem;
14-
import info.novatec.testit.webtester.events.AbstractEvent;
1515

1616

1717
/**
@@ -31,8 +31,8 @@
3131
* @see PageSourceSaver#save(File)
3232
* @since 2.0
3333
*/
34-
@SuppressWarnings("serial")
3534
@Getter
35+
@SuppressWarnings("serial")
3636
public class SavedSourceCodeEvent extends AbstractEvent {
3737

3838
private final File pageSource;
@@ -43,7 +43,7 @@ public SavedSourceCodeEvent(File pageSource) {
4343

4444
@Override
4545
public String describe() {
46-
return format("saved page source and saved it as: %s", pageSource);
46+
return format("saved page source and stored it as: '%s'", pageSource);
4747
}
4848

4949
}

0 commit comments

Comments
 (0)