1 package com.atlassian.pageobjects.elements.timeout;
2
3
4 import java.util.HashMap;
5
6
7
8
9
10 public class DefaultTimeouts implements Timeouts
11 {
12 private static final String PAGE_OBJECTS_TIMEOUTS_PROPERTIES = "com/atlassian/timeout/pageobjects-timeouts.properties";
13
14 public static final long DEFAULT = 5000L;
15 public static final long DEFAULT_PAGE_LOAD = 20000L;
16 public static final long DEFAULT_AJAX_ACTION = DEFAULT;
17 public static final long DEFAULT_DIALOG_LOAD = DEFAULT;
18
19 private final Timeouts timeouts;
20
21
22
23 public DefaultTimeouts()
24 {
25 if(this.getClass().getClassLoader().getResource(PAGE_OBJECTS_TIMEOUTS_PROPERTIES) != null)
26 {
27 timeouts = PropertiesBasedTimeouts.fromClassPath(PAGE_OBJECTS_TIMEOUTS_PROPERTIES);
28 }
29 else
30 {
31 HashMap<TimeoutType, Long> defaultTimeouts = new HashMap<TimeoutType, Long>();
32 defaultTimeouts.put(TimeoutType.DEFAULT, DEFAULT);
33 defaultTimeouts.put(TimeoutType.EVALUATION_INTERVAL, DEFAULT_INTERVAL);
34 defaultTimeouts.put(TimeoutType.UI_ACTION, 1000L);
35 defaultTimeouts.put(TimeoutType.PAGE_LOAD, DEFAULT_PAGE_LOAD);
36 defaultTimeouts.put(TimeoutType.SLOW_PAGE_LOAD, 50000L);
37 defaultTimeouts.put(TimeoutType.DIALOG_LOAD, DEFAULT_DIALOG_LOAD);
38 defaultTimeouts.put(TimeoutType.COMPONENT_LOAD, 3000L);
39 defaultTimeouts.put(TimeoutType.AJAX_ACTION, DEFAULT_AJAX_ACTION);
40 timeouts = new MapBasedTimeouts(defaultTimeouts);
41 }
42 }
43
44 public long timeoutFor(TimeoutType timeoutType)
45 {
46 return timeouts.timeoutFor(timeoutType);
47 }
48 }