View Javadoc

1   /**
2    * Copyright 2008 WebPhotos
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package net.sf.webphotos.gui.util;
17  
18  import java.awt.Component;
19  import java.awt.Rectangle;
20  import net.sf.webphotos.util.Util;
21  import org.junit.*;
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertNull;
24  import org.uispec4j.Trigger;
25  import org.uispec4j.UISpec4J;
26  import org.uispec4j.Window;
27  import org.uispec4j.finder.ComponentMatcher;
28  import org.uispec4j.interception.WindowHandler;
29  import org.uispec4j.interception.WindowInterceptor;
30  
31  /**
32   * Login Interface Test
33   * Requires a headless UI
34   * @author Guilherme
35   */
36  public class LoginTest {
37  
38      static {
39          UISpec4J.init();
40      }
41  
42      /**
43       *
44       */
45      public LoginTest() {
46      }
47  
48      /**
49       *
50       * @throws Exception
51       */
52      @BeforeClass
53      public static void setUpClass() throws Exception {
54      }
55  
56      /**
57       *
58       * @throws Exception
59       */
60      @AfterClass
61      public static void tearDownClass() throws Exception {
62      }
63  
64      /**
65       *
66       */
67      @Before
68      public void setUp() {
69      }
70  
71      /**
72       *
73       */
74      @After
75      public void tearDown() {
76      }
77  
78      /**
79       * Basic Test.
80       */
81      @Test
82      public void testLogin_Basic() {
83          System.out.println("Basic Login");
84  
85          final Login login = new Login();
86          final WindowHandler windowHandler = new WindowHandler() {
87  
88              @Override
89              public Trigger process(Window window) {
90                  // return a trigger that will close it
91                  return window.getButton("OK").triggerClick();
92              }
93          };
94          interceptDialog(login, windowHandler);
95  
96          assertEquals(Util.getConfig().getString("autoPreencher.Login"), login.getUser());
97          assertEquals(Util.getConfig().getString("autoPreencher.Pass"), new String(login.getPassword()));
98      }
99  
100     /**
101      * Writing info Test.
102      */
103     @Test
104     public void testLogin_WritingInfo() {
105         System.out.println("Writing info Login");
106 
107         final String testeLogin = "TesteLogin";
108         final String testePass = "TestePass";
109 
110         final Login login = new Login();
111         final WindowHandler windowHandler = new WindowHandler() {
112 
113             @Override
114             public Trigger process(Window window) {
115                 window.getTextBox(new ComponentMatcher() {
116 
117                     @Override
118                     public boolean matches(Component cmpnt) {
119                         return cmpnt.getBounds().equals(new Rectangle(55,8,129,20));
120                     }
121                 }).setText(testeLogin);
122                 window.getPasswordField(new ComponentMatcher() {
123 
124                     @Override
125                     public boolean matches(Component cmpnt) {
126                         return cmpnt.getBounds().equals(new Rectangle(55,34,129,20));
127                     }
128                 }).setPassword(testePass);
129 
130                 // return a trigger that will close it
131                 return window.getButton("OK").triggerClick();
132             }
133         };
134         interceptDialog(login, windowHandler);
135 
136         assertEquals(testeLogin, login.getUser());
137         assertEquals(testePass, new String(login.getPassword()));
138     }
139 
140     /**
141      * Cancel Test.
142      */
143     @Test
144     public void testLogin_Cancel() {
145         System.out.println("Cancel Login");
146 
147         final Login login = new Login();
148         final WindowHandler windowHandler = new WindowHandler() {
149 
150             @Override
151             public Trigger process(Window window) {
152                 // return a trigger that will close it
153                 return window.getButton("Cancel").triggerClick();
154             }
155         };
156         interceptDialog(login, windowHandler);
157 
158         assertNull(login.getUser());
159         assertNull(login.getPassword());
160     }
161 
162     private void interceptDialog(final Login login, final WindowHandler windowHandler) {
163         WindowInterceptor.init(new Trigger() {
164 
165             @Override
166             public void run() throws Exception {
167                 login.show();
168             }
169         }).process(windowHandler).run();
170     }
171 }