1
1
package aquality .selenium .waitings ;
2
2
3
+ import aquality .selenium .browser .BrowserManager ;
3
4
import aquality .selenium .configuration .Configuration ;
4
5
import aquality .selenium .configuration .ITimeoutConfiguration ;
5
6
import org .openqa .selenium .StaleElementReferenceException ;
6
- import org .testng .annotations .BeforeMethod ;
7
7
import org .testng .annotations .Test ;
8
+ import utils .DurationSample ;
8
9
import utils .Timer ;
9
10
10
11
import java .util .Collections ;
@@ -17,67 +18,66 @@ public class ConditionalWaitTests {
17
18
18
19
private static final long waitForTimeoutCondition = 10 ;
19
20
private static final long waitForTimeoutPolling = 150 ;
20
- private Timer timer ;
21
-
22
- @ BeforeMethod
23
- public void initTimer (){
24
- timer = new Timer ();
25
- }
21
+ private static final double defaultDeviation = 7 ;
26
22
27
23
@ Test
28
24
public void testFalseShouldBeReturnedIfConditionIsNotMetAndDefaultTimeoutIsOver (){
29
25
long timeoutCondition = getTimeoutConfig ().getCondition ();
30
26
27
+ Timer timer = new Timer ();
31
28
boolean result = ConditionalWait .waitForTrue (() ->
32
29
{
33
30
timer .start ();
34
31
return false ;
35
32
}, "Condition should be true" );
36
- double duration = timer .stop ( );
33
+ DurationSample durationSample = new DurationSample ( timer .duration (), timeoutCondition , defaultDeviation );
37
34
38
35
assertFalse (result );
39
- assertTrue (duration > timeoutCondition && duration < 2 * timeoutCondition );
36
+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
40
37
}
41
38
42
39
@ Test
43
40
public void testTimeoutExceptionShouldBeThrownIfConditionIsMetAndTimeoutIsOver (){
41
+ Timer timer = new Timer ();
44
42
try {
45
43
ConditionalWait .waitForTrue (() ->
46
44
{
47
45
timer .start ();
48
46
return false ;
49
47
}, waitForTimeoutCondition , waitForTimeoutPolling ,"Condition should be true" );
50
48
} catch (TimeoutException e ) {
51
- double duration = timer .stop ( );
52
- assertTrue (duration > waitForTimeoutCondition && duration < 2 * waitForTimeoutCondition );
49
+ DurationSample durationSample = new DurationSample ( timer .duration (), waitForTimeoutCondition , defaultDeviation );
50
+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
53
51
}
54
52
}
55
53
56
54
@ Test
57
55
public void testTimeoutExceptionShouldNotBeThrownIfConditionIsMetAndDefaultTimeoutIsNotOver (){
58
56
long timeoutCondition = getTimeoutConfig ().getCondition ();
57
+ Timer timer = new Timer ();
59
58
60
59
boolean result = ConditionalWait .waitForTrue (() ->
61
60
{
62
61
timer .start ();
63
62
return true ;
64
63
}, "Timeout exception should not be thrown" );
65
- double duration = timer .stop ( );
64
+ DurationSample durationSample = new DurationSample ( timer .duration (), timeoutCondition );
66
65
67
66
assertTrue (result );
68
- assertTrue (duration < timeoutCondition );
67
+ assertTrue (durationSample . getDuration () < timeoutCondition );
69
68
}
70
69
71
70
@ Test
72
71
public void testTimeoutExceptionShouldNotBeThrownIfConditionMetAndTimeoutIsNotOver () throws TimeoutException {
72
+ Timer timer = new Timer ();
73
+
73
74
ConditionalWait .waitForTrue (() ->
74
75
{
75
76
timer .start ();
76
77
return true ;
77
78
}, waitForTimeoutCondition , waitForTimeoutPolling , "Timeout exception should not be thrown" );
78
- double duration = timer .stop ();
79
-
80
- assertTrue (duration < waitForTimeoutCondition );
79
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
80
+ assertTrue (durationSample .getDuration () < waitForTimeoutCondition );
81
81
}
82
82
83
83
@ Test (expectedExceptions = IllegalArgumentException .class )
@@ -88,6 +88,8 @@ public void testNullCannotBePassedAsCondition(){
88
88
@ Test
89
89
public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndDefaultTimeoutIsOver (){
90
90
long timeoutCondition = getTimeoutConfig ().getCondition ();
91
+ Timer timer = new Timer ();
92
+
91
93
try {
92
94
ConditionalWait .waitFor ((driver ) ->
93
95
{
@@ -97,14 +99,17 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndDefaul
97
99
"Condition should be true" );
98
100
99
101
}catch (org .openqa .selenium .TimeoutException e ){
100
- double duration = timer .stop ();
102
+ DurationSample durationSample = new DurationSample (timer .duration (), timeoutCondition , defaultDeviation );
103
+ BrowserManager .getBrowser ().quit ();
101
104
102
- assertTrue (duration > timeoutCondition && duration < 2 * timeoutCondition );
105
+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
103
106
}
104
107
}
105
108
106
109
@ Test
107
110
public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeoutIsOver (){
111
+ Timer timer = new Timer ();
112
+
108
113
try {
109
114
ConditionalWait .waitFor ((driver ) ->
110
115
{
@@ -114,28 +119,33 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeou
114
119
"Conditional should be true" , Collections .singleton (StaleElementReferenceException .class ));
115
120
116
121
}catch (org .openqa .selenium .TimeoutException e ){
117
- double duration = timer .stop ();
118
-
119
- assertTrue (duration > waitForTimeoutCondition && duration < 2 * waitForTimeoutCondition );
122
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
123
+ BrowserManager .getBrowser ().quit ();
120
124
125
+ assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
121
126
}
122
127
}
123
128
124
129
@ Test
125
130
public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndDefaultTimeoutIsNotOver (){
131
+ Timer timer = new Timer ();
132
+
126
133
ConditionalWait .waitFor ((driver ) ->
127
134
{
128
135
timer .start ();
129
136
return true ;
130
137
},
131
138
"Conditional should be true" );
132
- double duration = timer .stop ();
139
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
140
+ BrowserManager .getBrowser ().quit ();
133
141
134
- assertTrue (duration < getTimeoutConfig ().getCondition ());
142
+ assertTrue (durationSample . getDuration () < getTimeoutConfig ().getCondition ());
135
143
}
136
144
137
145
@ Test
138
146
public void testExceptionShouldBeCatchedConditionIsMetAndDefaultTimeoutIsNotOver (){
147
+ Timer timer = new Timer ();
148
+
139
149
try {
140
150
ConditionalWait .waitFor ((driver ) ->
141
151
{
@@ -144,23 +154,27 @@ public void testExceptionShouldBeCatchedConditionIsMetAndDefaultTimeoutIsNotOver
144
154
}, waitForTimeoutCondition , waitForTimeoutPolling ,
145
155
"Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
146
156
} catch (org .openqa .selenium .TimeoutException e ){
147
- double duration = timer .stop ();
157
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
158
+ BrowserManager .getBrowser ().quit ();
148
159
149
- assertTrue (duration > waitForTimeoutCondition && duration < 2 * waitForTimeoutCondition );
160
+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
150
161
}
151
162
}
152
163
153
164
@ Test
154
165
public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndTimeoutIsNotOver (){
166
+ Timer timer = new Timer ();
167
+
155
168
ConditionalWait .waitFor ((driver ) ->
156
169
{
157
170
timer .start ();
158
171
return true ;
159
172
}, waitForTimeoutCondition , waitForTimeoutPolling ,
160
173
"Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
161
- double duration = timer .stop ();
174
+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
175
+ BrowserManager .getBrowser ().quit ();
162
176
163
- assertTrue (duration < waitForTimeoutCondition );
177
+ assertTrue (durationSample . getDuration () < waitForTimeoutCondition );
164
178
}
165
179
166
180
private ITimeoutConfiguration getTimeoutConfig (){
0 commit comments