1 package com.atlassian.pageobjects;
2
3 /**
4 * The product being tested. Provides access to key services to be used during testing.
5 */
6 public interface TestedProduct<T extends Tester>
7 {
8 /**
9 * Constructs the page object, changes the browser URL to the desired page URL, then binds the object to the page.
10 * @param pageClass The page class
11 * @param args Arguments to pass to the page object constructor.
12 * @param <P> The page type
13 * @return The constructed and fully loaded page with the browser set accordingly
14 */
15 <P extends Page> P visit(Class<P> pageClass, Object... args);
16
17 /**
18 * @return The page binder for visiting pages and binding page objects
19 */
20 PageBinder getPageBinder();
21
22 /**
23 * @return Information about the instance being tested
24 */
25 ProductInstance getProductInstance();
26
27 /**
28 * @return The tester being used
29 */
30 T getTester();
31 }