5
5
import aquality .selenium .configuration .ITimeoutConfiguration ;
6
6
import org .openqa .selenium .StaleElementReferenceException ;
7
7
import org .testng .Assert ;
8
+ import org .testng .annotations .AfterMethod ;
8
9
import org .testng .annotations .Test ;
9
10
import utils .DurationSample ;
10
11
import utils .Timer ;
11
-
12
12
import java .util .Collections ;
13
13
import java .util .concurrent .TimeoutException ;
14
-
15
14
import static org .testng .Assert .assertFalse ;
16
15
import static org .testng .Assert .assertTrue ;
17
16
@@ -88,8 +87,6 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndDefaul
88
87
} catch (org .openqa .selenium .TimeoutException e ) {
89
88
DurationSample durationSample = new DurationSample (timer .duration (), getTimeoutConfig ().getCondition (), defaultDeviation );
90
89
assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
91
- } finally {
92
- BrowserManager .getBrowser ().quit ();
93
90
}
94
91
}
95
92
@@ -102,71 +99,122 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeou
102
99
timer .start ();
103
100
return false ;
104
101
}, waitForTimeoutCondition , waitForTimeoutPolling ,
105
- "Conditional should be true" , Collections . singleton ( StaleElementReferenceException . class ) );
102
+ "Conditional should be true" );
106
103
107
104
} catch (org .openqa .selenium .TimeoutException e ) {
108
105
DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
109
106
assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
110
- } finally {
111
- BrowserManager .getBrowser ().quit ();
112
107
}
113
108
}
114
109
115
110
@ Test
116
- public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndDefaultTimeoutIsNotOver () {
111
+ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeoutIsOverWithIgnoredExceptions () {
117
112
Timer timer = new Timer ();
118
113
try {
119
114
ConditionalWait .waitFor ((driver ) ->
120
115
{
121
116
timer .start ();
122
- return true ;
123
- },
124
- "Conditional should be true" );
125
- DurationSample durationSample = new DurationSample ( timer . duration (), getTimeoutConfig (). getCondition ());
126
- assertTrue ( durationSample . getDuration () < getTimeoutConfig (). getCondition ());
127
- } finally {
128
- BrowserManager . getBrowser (). quit ( );
117
+ return false ;
118
+ }, waitForTimeoutCondition , waitForTimeoutPolling ,
119
+ "Conditional should be true" , Collections . emptyList () );
120
+
121
+ } catch ( org . openqa . selenium . TimeoutException e ) {
122
+ DurationSample durationSample = new DurationSample ( timer . duration (), waitForTimeoutCondition , defaultDeviation );
123
+ assertTrue ( durationSample . isDurationBetweenLimits (), durationSample . toString () );
129
124
}
130
125
}
131
126
132
127
@ Test
133
- public void testExceptionShouldBeCaughtConditionIsMetAndDefaultTimeoutIsNotOver (){
128
+ public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndDefaultTimeoutIsNotOver () {
129
+ Timer timer = new Timer ();
130
+
131
+ ConditionalWait .waitFor ((driver ) ->
132
+ {
133
+ timer .start ();
134
+ return true ;
135
+ },
136
+ "Conditional should be true" );
137
+ DurationSample durationSample = new DurationSample (timer .duration (), getTimeoutConfig ().getCondition ());
138
+ assertTrue (durationSample .getDuration () < getTimeoutConfig ().getCondition ());
139
+ }
140
+
141
+ @ Test
142
+ public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndTimeoutIsNotOverWithIgnoredExceptions () {
143
+ Timer timer = new Timer ();
144
+ boolean conditionResult = ConditionalWait .waitFor ((driver ) ->
145
+ {
146
+ timer .start ();
147
+ return true ;
148
+ }, waitForTimeoutCondition , waitForTimeoutPolling ,
149
+ "Conditional should be true" );
150
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
151
+ assertTrue (durationSample .getDuration () < waitForTimeoutCondition );
152
+ assertTrue (conditionResult , "Condition result should be true" );
153
+ }
154
+
155
+ @ Test
156
+ public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndTimeoutIsNotOver () {
157
+ Timer timer = new Timer ();
158
+ boolean conditionResult = ConditionalWait .waitFor ((driver ) ->
159
+ {
160
+ timer .start ();
161
+ return true ;
162
+ }, waitForTimeoutCondition , waitForTimeoutPolling ,
163
+ "Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
164
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
165
+ assertTrue (durationSample .getDuration () < waitForTimeoutCondition );
166
+ assertTrue (conditionResult , "Condition result should be true" );
167
+ }
168
+
169
+ @ Test
170
+ public void testExceptionShouldBeCaughtConditionIsMetAndTimeoutIsNotOver () {
134
171
Timer timer = new Timer ();
135
- try {
172
+ try {
136
173
ConditionalWait .waitFor ((driver ) ->
137
174
{
138
175
timer .start ();
139
176
throw new IllegalArgumentException ("I am exception" );
140
177
}, waitForTimeoutCondition , waitForTimeoutPolling ,
141
178
"Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
142
- } catch (org .openqa .selenium .TimeoutException e ){
179
+ } catch (org .openqa .selenium .TimeoutException e ) {
143
180
DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
144
181
assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
145
- } finally {
146
- BrowserManager .getBrowser ().quit ();
147
182
}
148
183
}
149
184
150
185
@ Test
151
- public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndTimeoutIsNotOver () {
186
+ public void testStaleElementReferenceExceptionShouldBeCaughtConditionIsMetAndTimeoutIsNotOver () {
152
187
Timer timer = new Timer ();
153
188
try {
154
- boolean conditionResult = ConditionalWait .waitFor ((driver ) ->
189
+ ConditionalWait .waitFor ((driver ) ->
155
190
{
156
191
timer .start ();
157
- return true ;
192
+ throw new StaleElementReferenceException ( "I am StaleElementReferenceException" ) ;
158
193
}, waitForTimeoutCondition , waitForTimeoutPolling ,
159
- "Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
160
- DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
161
- assertTrue (durationSample .getDuration () < waitForTimeoutCondition );
162
- assertTrue (conditionResult , "Condition result should be true" );
163
- } finally {
164
- BrowserManager .getBrowser ().quit ();
194
+ "Conditional should be true" );
195
+ } catch (org .openqa .selenium .TimeoutException e ) {
196
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
197
+ assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
198
+ }
199
+ }
200
+
201
+ @ Test
202
+ public void testStaleElementReferenceExceptionShouldBeCaughtConditionIsMetAndDefaultTimeoutIsNotOver () {
203
+ Timer timer = new Timer ();
204
+ try {
205
+ ConditionalWait .waitFor ((driver ) ->
206
+ {
207
+ timer .start ();
208
+ throw new StaleElementReferenceException ("I am StaleElementReferenceException" );
209
+ }, "Conditional should be true" );
210
+ } catch (org .openqa .selenium .TimeoutException e ) {
211
+ DurationSample durationSample = new DurationSample (timer .duration (), getTimeoutConfig ().getCondition (), defaultDeviation );
212
+ assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
165
213
}
166
214
}
167
215
168
216
@ Test
169
- public void testTrueShouldNotBeReturnedIfConditionIsMetAndTimeoutIsNotOver () {
217
+ public void testTrueShouldBeReturnedIfConditionIsMetAndTimeoutIsNotOver () {
170
218
Timer timer = new Timer ();
171
219
boolean conditionResult = ConditionalWait .waitFor (() ->
172
220
{
@@ -179,7 +227,7 @@ public void testTrueShouldNotBeReturnedIfConditionIsMetAndTimeoutIsNotOver(){
179
227
}
180
228
181
229
@ Test
182
- public void testFalseShouldBeReturnedIfConditionIsNotMetAndTimeoutIsOver (){
230
+ public void testFalseShouldBeReturnedIfConditionIsNotMetAndTimeoutIsOver () {
183
231
Timer timer = new Timer ();
184
232
boolean conditionResult = ConditionalWait .waitFor (() ->
185
233
{
@@ -192,7 +240,7 @@ public void testFalseShouldBeReturnedIfConditionIsNotMetAndTimeoutIsOver(){
192
240
}
193
241
194
242
@ Test
195
- public void testTrueShouldBeReturnedIfConditionIsMetAndDefaultTimeoutIsNotOver (){
243
+ public void testTrueShouldBeReturnedIfConditionIsMetAndDefaultTimeoutIsNotOver () {
196
244
Timer timer = new Timer ();
197
245
boolean conditionResult = ConditionalWait .waitFor (() ->
198
246
{
@@ -205,7 +253,7 @@ public void testTrueShouldBeReturnedIfConditionIsMetAndDefaultTimeoutIsNotOver()
205
253
}
206
254
207
255
@ Test
208
- public void testFalseShouldBeReturnedIfConditionIsNotMetAndDefaultTimeoutIsOver (){
256
+ public void testFalseShouldBeReturnedIfConditionIsNotMetAndDefaultTimeoutIsOver () {
209
257
Timer timer = new Timer ();
210
258
boolean conditionResult = ConditionalWait .waitFor (() ->
211
259
{
@@ -217,7 +265,12 @@ public void testFalseShouldBeReturnedIfConditionIsNotMetAndDefaultTimeoutIsOver(
217
265
assertFalse (conditionResult , "Condition result should be false" );
218
266
}
219
267
220
- private ITimeoutConfiguration getTimeoutConfig (){
268
+ @ AfterMethod
269
+ public void after () {
270
+ BrowserManager .getBrowser ().quit ();
271
+ }
272
+
273
+ private ITimeoutConfiguration getTimeoutConfig () {
221
274
return Configuration .getInstance ().getTimeoutConfiguration ();
222
275
}
223
276
}
0 commit comments