1 package com.atlassian.webdriver.testing.rule;
2
3 import com.atlassian.webdriver.browsers.WebDriverBrowserAutoInstall;
4 import com.google.common.base.Supplier;
5 import com.google.common.base.Suppliers;
6 import org.junit.rules.ExternalResource;
7 import org.openqa.selenium.WebDriver;
8
9 import javax.inject.Inject;
10
11
12
13
14
15
16
17
18
19
20
21
22 public class SessionCleanupRule extends FailsafeExternalResource
23 {
24
25 private final Supplier<? extends WebDriver> webDriver;
26
27 public SessionCleanupRule(Supplier<? extends WebDriver> webDriver)
28 {
29 this.webDriver = webDriver;
30 }
31
32 @Inject
33 public SessionCleanupRule(WebDriver webDriver)
34 {
35 this(Suppliers.ofInstance(webDriver));
36 }
37
38 public SessionCleanupRule()
39 {
40 this(WebDriverBrowserAutoInstall.driverSupplier());
41 }
42
43 @Override
44 protected void before() throws Throwable
45 {
46 cleanUp();
47 }
48
49 @Override
50 protected void after()
51 {
52 cleanUp();
53 }
54
55 private void cleanUp()
56 {
57 final WebDriver driver = webDriver.get();
58 if (driver != null)
59 {
60 driver.manage().deleteAllCookies();
61 }
62 }
63 }