1
1
package info .novatec .testit .webtester .browser .operations ;
2
2
3
3
import static org .assertj .core .api .Assertions .assertThat ;
4
+ import static org .mockito .Mockito .doReturn ;
4
5
import static org .mockito .Mockito .mock ;
5
6
import static org .mockito .Mockito .verify ;
6
7
import static org .mockito .Mockito .when ;
12
13
import org .mockito .Answers ;
13
14
import org .mockito .ArgumentCaptor ;
14
15
import org .mockito .Captor ;
16
+ import org .mockito .InjectMocks ;
15
17
import org .mockito .Mock ;
16
18
import org .mockito .runners .MockitoJUnitRunner ;
17
19
import org .openqa .selenium .Alert ;
20
22
import org .openqa .selenium .security .Credentials ;
21
23
import org .openqa .selenium .security .UserAndPassword ;
22
24
23
- import utils .events .EventCaptor ;
24
-
25
25
import info .novatec .testit .webtester .browser .Browser ;
26
- import info .novatec .testit .webtester .browser .WebDriverBrowser ;
27
26
import info .novatec .testit .webtester .events .EventSystem ;
28
27
import info .novatec .testit .webtester .events .browser .AcceptedAlertEvent ;
29
28
import info .novatec .testit .webtester .events .browser .DeclinedAlertEvent ;
@@ -37,16 +36,19 @@ static abstract class AbstractAlertHandlerTest {
37
36
38
37
@ Mock (answer = Answers .RETURNS_DEEP_STUBS )
39
38
WebDriver webDriver ;
40
-
39
+ @ Mock
40
+ EventSystem events ;
41
+ @ Mock
41
42
Browser browser ;
42
- EventSystem eventSystem ;
43
+
44
+ @ InjectMocks
43
45
AlertHandler cut ;
44
46
45
47
@ Before
46
- public void initializeClassUnderTest () {
47
- browser = WebDriverBrowser . forWebDriver (webDriver ).build ();
48
- eventSystem = browser .events ();
49
- cut = new AlertHandler ( browser );
48
+ public void init () {
49
+ doReturn (webDriver ).when ( browser ). webDriver ();
50
+ doReturn ( events ). when ( browser ) .events ();
51
+ doReturn ( true ). when ( events ). isEnabled ( );
50
52
}
51
53
52
54
Alert alertIsPresent (String message ) {
@@ -65,6 +67,9 @@ void alertIsNotPresent() {
65
67
66
68
public static class Accept extends AbstractAlertHandlerTest {
67
69
70
+ @ Captor
71
+ ArgumentCaptor <AcceptedAlertEvent > eventCaptor ;
72
+
68
73
@ Test
69
74
public void alertsCanBeAccepted () {
70
75
Alert alert = alertIsPresent ("hello alert!" );
@@ -81,16 +86,19 @@ public void acceptingNonExistentAlertThrowsException() {
81
86
@ Test
82
87
public void acceptingAnAlertFiresEvent () {
83
88
alertIsPresent ("hello alert!" );
84
- EventCaptor . capture ( eventSystem , AcceptedAlertEvent . class )
85
- . execute (() -> cut . accept ())
86
- . assertEventWasFired ()
87
- . assertEvent ( event -> assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" ) );
89
+ cut . accept ();
90
+ verify ( events ). fireEvent ( eventCaptor . capture ());
91
+ AcceptedAlertEvent event = eventCaptor . getValue ();
92
+ assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" );
88
93
}
89
94
90
95
}
91
96
92
97
public static class AcceptIfPresent extends AbstractAlertHandlerTest {
93
98
99
+ @ Captor
100
+ ArgumentCaptor <AcceptedAlertEvent > eventCaptor ;
101
+
94
102
@ Test
95
103
public void alertsCanBeAcceptedIfTheyArePresent () {
96
104
Alert alert = alertIsPresent ("hello alert!" );
@@ -105,10 +113,22 @@ public void acceptingAnAlertIfItsPresentDoesNotThrowExceptionIfNoAlertExists() {
105
113
// no exception
106
114
}
107
115
116
+ @ Test
117
+ public void acceptingAnAlertFiresEvent () {
118
+ alertIsPresent ("hello alert!" );
119
+ cut .acceptIfPresent ();
120
+ verify (events ).fireEvent (eventCaptor .capture ());
121
+ AcceptedAlertEvent event = eventCaptor .getValue ();
122
+ assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" );
123
+ }
124
+
108
125
}
109
126
110
127
public static class Decline extends AbstractAlertHandlerTest {
111
128
129
+ @ Captor
130
+ ArgumentCaptor <DeclinedAlertEvent > eventCaptor ;
131
+
112
132
@ Test
113
133
public void alertsCanBeDeclined () {
114
134
Alert alert = alertIsPresent ("hello alert!" );
@@ -125,16 +145,19 @@ public void decliningNonExistentAlertThrowsException() {
125
145
@ Test
126
146
public void decliningAnAlertFiresEvent () {
127
147
alertIsPresent ("hello alert!" );
128
- EventCaptor . capture ( eventSystem , DeclinedAlertEvent . class )
129
- . execute (() -> cut . decline ())
130
- . assertEventWasFired ()
131
- . assertEvent ( event -> assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" ) );
148
+ cut . decline ();
149
+ verify ( events ). fireEvent ( eventCaptor . capture ());
150
+ DeclinedAlertEvent event = eventCaptor . getValue ();
151
+ assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" );
132
152
}
133
153
134
154
}
135
155
136
156
public static class DeclineIfPresent extends AbstractAlertHandlerTest {
137
157
158
+ @ Captor
159
+ ArgumentCaptor <DeclinedAlertEvent > eventCaptor ;
160
+
138
161
@ Test
139
162
public void alertsCanBeDeclinedIfTheyArePresent () {
140
163
Alert alert = alertIsPresent ("hello alert!" );
@@ -149,6 +172,15 @@ public void decliningAnAlertIfItsPresentDoesNotThrowExceptionIfNoAlertExists() {
149
172
// no exception
150
173
}
151
174
175
+ @ Test
176
+ public void decliningAnAlertFiresEvent () {
177
+ alertIsPresent ("hello alert!" );
178
+ cut .declineIfPresent ();
179
+ verify (events ).fireEvent (eventCaptor .capture ());
180
+ DeclinedAlertEvent event = eventCaptor .getValue ();
181
+ assertThat (event .getAlertMessage ()).isEqualTo ("hello alert!" );
182
+ }
183
+
152
184
}
153
185
154
186
public static class IsPresent extends AbstractAlertHandlerTest {
@@ -193,7 +225,7 @@ public void canAuthenticateWithCredentials() {
193
225
194
226
Alert alert = alertIsPresent ("please sign in" );
195
227
Credentials credentials = new UserAndPassword ("foo" , "bar" );
196
- browser . alert () .authenticateWith (credentials );
228
+ cut .authenticateWith (credentials );
197
229
198
230
verify (alert ).authenticateUsing (credentials );
199
231
@@ -203,7 +235,7 @@ public void canAuthenticateWithCredentials() {
203
235
public void canAuthenticateWithUsernameAndPassword () {
204
236
205
237
Alert alert = alertIsPresent ("please sign in" );
206
- browser . alert () .authenticateWith ("foo" , "bar" );
238
+ cut .authenticateWith ("foo" , "bar" );
207
239
verify (alert ).authenticateUsing (credentialsCaptor .capture ());
208
240
209
241
Credentials credentials = credentialsCaptor .getValue ();
0 commit comments