1   /*
2    * Apache License
3    * Version 2.0, January 2004
4    * http://www.apache.org/licenses/
5    *
6    * Copyright 2008 by chenillekit.org
7    *
8    * Licensed under the Apache License, Version 2.0 (the "License");
9    * you may not use this file except in compliance with the License.
10   * You may obtain a copy of the License at
11   *
12   * http://www.apache.org/licenses/LICENSE-2.0
13   */
14  
15  package org.chenillekit.access;
16  
17  import java.util.HashMap;
18  import java.util.Map;
19  
20  import org.apache.tapestry5.dom.Document;
21  import org.apache.tapestry5.dom.Element;
22  import org.apache.tapestry5.test.PageTester;
23  import org.testng.Assert;
24  import org.testng.annotations.BeforeTest;
25  import org.testng.annotations.Test;
26  
27  /**
28   *
29   * @version $Id: TestAccessIntegration.java 380 2008-12-30 10:21:52Z mlusetti $
30   */
31  public class TestAccessIntegration extends Assert
32  {
33  	private PageTester pageTester;
34  
35  	@BeforeTest
36  	public void initializeTests()
37  	{
38  		String appPackage = "org.chenillekit.access";
39  		String appName = "TestAppWithRoot";
40  		pageTester = new PageTester(appPackage, appName, "src/test/webapp");
41  	}
42  
43  //    FIXME this test fail cause i don't have a user logged in
44  //	@Test
45  //	public void test_restricted()
46  //	{
47  //		Document doc = pageTester.renderPage("Start");
48  //		Element link = doc.getElementById("Restricted");
49  //
50  //		doc = pageTester.clickLink(link);
51  //		Element element = doc.getElementById("has_access");
52  //
53  //		assertEquals(element.getChildMarkup(), "Has Access");
54  //	}
55  
56  	// FIXME this test fail cause i don't have a user logged in
57  //    @Test
58  //    public void test_restricted_rolevalue()
59  //    {
60  //        Document doc = pageTester.renderPage("Start");
61  //        Element link = doc.getElementById("Restricted");
62  //
63  //        doc = pageTester.clickLink(link);
64  //        Element element = doc.getElementById("role_meta_value");
65  //
66  //        assertEquals(element.getChildMarkup(), "2");
67  //    }
68  
69  	@Test
70  	public void test_unRestricted()
71  	{
72  		Document doc = pageTester.renderPage("Start");
73  		Element link = doc.getElementById("UnRestricted");
74  
75  		doc = pageTester.clickLink(link);
76  		Element element = doc.getElementById("has_access");
77  		assertEquals(element.getChildMarkup(), "everybody has access");
78  	}
79  
80  	@Test
81  	public void test_notEnoughRights()
82  	{
83  		Document doc = pageTester.renderPage("Start");
84  		Element link = doc.getElementById("NotEnoughRights");
85  
86  		doc = pageTester.clickLink(link);
87  		Element element = doc.getElementById("login_message");
88  		assertEquals(element.getChildMarkup(), "Login Page");
89  	}
90  
91  	@Test
92  	public void test_restrictedTextField()
93  	{
94  		Document doc = pageTester.renderPage("Start");
95  		Element link = doc.getElementById("RestrictedTextField");
96  
97  		doc = pageTester.clickLink(link);
98  		Element element1 = doc.getElementById("simpleTextField1");
99  		assertNotNull(element1);
100 
101 		Element element2 = doc.getElementById("simpleTextField2");
102 		assertNotNull(element2);
103 	}
104 
105 	@Test
106 	public void test_restrictedActionLink()
107 	{
108 		Document doc = pageTester.renderPage("UnRestrictedPage");
109 		Element link = doc.getElementById("testRights");
110 
111 		doc = pageTester.clickLink(link);
112 	}
113 
114 	@Test
115 	public void test_restrictedActionLinkOnEvent()
116 	{
117 		Document doc = pageTester.renderPage("UnRestrictedPage");
118 		Element link = doc.getElementById("testRightsOnEvent");
119 
120 		doc = pageTester.clickLink(link);
121 	}
122 
123 	@Test
124 	public void test_login()
125 	{
126 		Document doc = pageTester.renderPage("NotEnoughRights");
127 
128 		Element element = doc.getElementById("login_message");
129 		assertEquals(element.getChildMarkup(), "Login Page");
130 
131 		Element submit = doc.getElementById("chenillekitLoginSubmit");
132 		Map<String, String> fieldValues = new HashMap<String, String>();
133 		fieldValues.put("chenillekitUsername", "root");
134 		fieldValues.put("chenillekitPassword", "banane");
135 		
136 		doc = pageTester.clickSubmit(submit, fieldValues);
137 		
138 		Document docAccessile = pageTester.renderPage("NotEnoughRights");
139 		
140 		// TODO We need to assure docAccessible is the NotEnoughRights page
141 	}
142 }