11package aquality .selenium .waitings ;
22
3+ import aquality .selenium .browser .BrowserManager ;
34import aquality .selenium .configuration .Configuration ;
45import aquality .selenium .configuration .ITimeoutConfiguration ;
56import org .openqa .selenium .StaleElementReferenceException ;
6- import org .testng .annotations .BeforeMethod ;
77import org .testng .annotations .Test ;
8+ import utils .DurationSample ;
89import utils .Timer ;
910
1011import java .util .Collections ;
@@ -17,67 +18,66 @@ public class ConditionalWaitTests {
1718
1819 private static final long waitForTimeoutCondition = 10 ;
1920 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 ;
2622
2723 @ Test
2824 public void testFalseShouldBeReturnedIfConditionIsNotMetAndDefaultTimeoutIsOver (){
2925 long timeoutCondition = getTimeoutConfig ().getCondition ();
3026
27+ Timer timer = new Timer ();
3128 boolean result = ConditionalWait .waitForTrue (() ->
3229 {
3330 timer .start ();
3431 return false ;
3532 }, "Condition should be true" );
36- double duration = timer .stop ( );
33+ DurationSample durationSample = new DurationSample ( timer .duration (), timeoutCondition , defaultDeviation );
3734
3835 assertFalse (result );
39- assertTrue (duration > timeoutCondition && duration < 2 * timeoutCondition );
36+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
4037 }
4138
4239 @ Test
4340 public void testTimeoutExceptionShouldBeThrownIfConditionIsMetAndTimeoutIsOver (){
41+ Timer timer = new Timer ();
4442 try {
4543 ConditionalWait .waitForTrue (() ->
4644 {
4745 timer .start ();
4846 return false ;
4947 }, waitForTimeoutCondition , waitForTimeoutPolling ,"Condition should be true" );
5048 } 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 () );
5351 }
5452 }
5553
5654 @ Test
5755 public void testTimeoutExceptionShouldNotBeThrownIfConditionIsMetAndDefaultTimeoutIsNotOver (){
5856 long timeoutCondition = getTimeoutConfig ().getCondition ();
57+ Timer timer = new Timer ();
5958
6059 boolean result = ConditionalWait .waitForTrue (() ->
6160 {
6261 timer .start ();
6362 return true ;
6463 }, "Timeout exception should not be thrown" );
65- double duration = timer .stop ( );
64+ DurationSample durationSample = new DurationSample ( timer .duration (), timeoutCondition );
6665
6766 assertTrue (result );
68- assertTrue (duration < timeoutCondition );
67+ assertTrue (durationSample . getDuration () < timeoutCondition );
6968 }
7069
7170 @ Test
7271 public void testTimeoutExceptionShouldNotBeThrownIfConditionMetAndTimeoutIsNotOver () throws TimeoutException {
72+ Timer timer = new Timer ();
73+
7374 ConditionalWait .waitForTrue (() ->
7475 {
7576 timer .start ();
7677 return true ;
7778 }, 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 );
8181 }
8282
8383 @ Test (expectedExceptions = IllegalArgumentException .class )
@@ -88,6 +88,8 @@ public void testNullCannotBePassedAsCondition(){
8888 @ Test
8989 public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndDefaultTimeoutIsOver (){
9090 long timeoutCondition = getTimeoutConfig ().getCondition ();
91+ Timer timer = new Timer ();
92+
9193 try {
9294 ConditionalWait .waitFor ((driver ) ->
9395 {
@@ -97,14 +99,17 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndDefaul
9799 "Condition should be true" );
98100
99101 }catch (org .openqa .selenium .TimeoutException e ){
100- double duration = timer .stop ();
102+ DurationSample durationSample = new DurationSample (timer .duration (), timeoutCondition , defaultDeviation );
103+ BrowserManager .getBrowser ().quit ();
101104
102- assertTrue (duration > timeoutCondition && duration < 2 * timeoutCondition );
105+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
103106 }
104107 }
105108
106109 @ Test
107110 public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeoutIsOver (){
111+ Timer timer = new Timer ();
112+
108113 try {
109114 ConditionalWait .waitFor ((driver ) ->
110115 {
@@ -114,28 +119,33 @@ public void testTimeoutExceptionShouldBeThrownIfDriverConditionIsNotMetAndTimeou
114119 "Conditional should be true" , Collections .singleton (StaleElementReferenceException .class ));
115120
116121 }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 ();
120124
125+ assertTrue (durationSample .isDurationBetweenLimits (), durationSample .toString ());
121126 }
122127 }
123128
124129 @ Test
125130 public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndDefaultTimeoutIsNotOver (){
131+ Timer timer = new Timer ();
132+
126133 ConditionalWait .waitFor ((driver ) ->
127134 {
128135 timer .start ();
129136 return true ;
130137 },
131138 "Conditional should be true" );
132- double duration = timer .stop ();
139+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition );
140+ BrowserManager .getBrowser ().quit ();
133141
134- assertTrue (duration < getTimeoutConfig ().getCondition ());
142+ assertTrue (durationSample . getDuration () < getTimeoutConfig ().getCondition ());
135143 }
136144
137145 @ Test
138146 public void testExceptionShouldBeCatchedConditionIsMetAndDefaultTimeoutIsNotOver (){
147+ Timer timer = new Timer ();
148+
139149 try {
140150 ConditionalWait .waitFor ((driver ) ->
141151 {
@@ -144,23 +154,27 @@ public void testExceptionShouldBeCatchedConditionIsMetAndDefaultTimeoutIsNotOver
144154 }, waitForTimeoutCondition , waitForTimeoutPolling ,
145155 "Conditional should be true" , Collections .singleton (IllegalArgumentException .class ));
146156 } catch (org .openqa .selenium .TimeoutException e ){
147- double duration = timer .stop ();
157+ DurationSample durationSample = new DurationSample (timer .duration (), waitForTimeoutCondition , defaultDeviation );
158+ BrowserManager .getBrowser ().quit ();
148159
149- assertTrue (duration > waitForTimeoutCondition && duration < 2 * waitForTimeoutCondition );
160+ assertTrue (durationSample . isDurationBetweenLimits (), durationSample . toString () );
150161 }
151162 }
152163
153164 @ Test
154165 public void testTimeoutExceptionShouldNotBeThrownIfDriverConditionIsMetAndTimeoutIsNotOver (){
166+ Timer timer = new Timer ();
167+
155168 ConditionalWait .waitFor ((driver ) ->
156169 {
157170 timer .start ();
158171 return true ;
159172 }, waitForTimeoutCondition , waitForTimeoutPolling ,
160173 "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 ();
162176
163- assertTrue (duration < waitForTimeoutCondition );
177+ assertTrue (durationSample . getDuration () < waitForTimeoutCondition );
164178 }
165179
166180 private ITimeoutConfiguration getTimeoutConfig (){
0 commit comments