Revision 1050
Added by Jing Tao over 22 years ago
junittests/edu/ucsb/nceas/metacatjunittests/MetaCatServletTest.java | ||
---|---|---|
1 |
/** |
|
2 |
* '$RCSfile$' |
|
3 |
* Copyright: 2000 Regents of the University of California and the |
|
4 |
* National Center for Ecological Analysis and Synthesis |
|
5 |
* Purpose: To test the MetaCatURL class by JUnit |
|
6 |
* Authors: @Jing Tao@ |
|
7 |
* Release: @release@ |
|
8 |
* |
|
9 |
* '$Author$' |
|
10 |
* '$Date$' |
|
11 |
* '$Revision$' |
|
12 |
* |
|
13 |
* This program is free software; you can redistribute it and/or modify |
|
14 |
* it under the terms of the GNU General Public License as published by |
|
15 |
* the Free Software Foundation; either version 2 of the License, or |
|
16 |
* (at your option) any later version. |
|
17 |
* |
|
18 |
* This program is distributed in the hope that it will be useful, |
|
19 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
20 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
21 |
* GNU General Public License for more details. |
|
22 |
* |
|
23 |
* You should have received a copy of the GNU General Public License |
|
24 |
* along with this program; if not, write to the Free Software |
|
25 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
26 |
*/ |
|
27 |
|
|
28 |
package edu.ucsb.nceas.metacatjunittests; |
|
29 |
|
|
30 |
import edu.ucsb.nceas.metacat.*; |
|
31 |
//import edu.ucsb.nceas.morpho.framework.*; |
|
32 |
import junit.framework.Test; |
|
33 |
import junit.framework.TestCase; |
|
34 |
import junit.framework.TestResult; |
|
35 |
import junit.framework.TestSuite; |
|
36 |
|
|
37 |
import java.io.*; |
|
38 |
import java.net.*; |
|
39 |
import java.util.*; |
|
40 |
|
|
41 |
|
|
42 |
/** |
|
43 |
* A JUnit test for testing Step class processing |
|
44 |
*/ |
|
45 |
public class MetaCatServletTest extends TestCase |
|
46 |
{ |
|
47 |
private String metacatURL= |
|
48 |
"http://dev.nceas.ucsb.edu/tao/servlet/metacat"; |
|
49 |
/** |
|
50 |
* Constructor to build the test |
|
51 |
* |
|
52 |
* @param name the name of the test method |
|
53 |
*/ |
|
54 |
public MetaCatServletTest(String name) |
|
55 |
{ |
|
56 |
super(name); |
|
57 |
} |
|
58 |
|
|
59 |
/** |
|
60 |
* Establish a testing framework by initializing appropriate objects |
|
61 |
*/ |
|
62 |
public void setUp() |
|
63 |
{ |
|
64 |
|
|
65 |
} |
|
66 |
|
|
67 |
/** |
|
68 |
* Release any objects after tests are complete |
|
69 |
*/ |
|
70 |
public void tearDown() |
|
71 |
{ |
|
72 |
} |
|
73 |
|
|
74 |
/** |
|
75 |
* Create a suite of tests to be run together |
|
76 |
*/ |
|
77 |
public static Test suite() |
|
78 |
{ |
|
79 |
TestSuite suite = new TestSuite(); |
|
80 |
suite.addTest(new MetaCatServletTest("initialize")); |
|
81 |
suite.addTest(new MetaCatServletTest("testNCEASLogin")); |
|
82 |
suite.addTest(new MetaCatServletTest("testNCEASLoginFail")); |
|
83 |
suite.addTest(new MetaCatServletTest("testLterReferralLogin")); |
|
84 |
suite.addTest(new MetaCatServletTest("testLterReferralLoginFail")); |
|
85 |
suite.addTest(new MetaCatServletTest("testPiscoReferralLogin")); |
|
86 |
suite.addTest(new MetaCatServletTest("testPiscoReferralLoginFail")); |
|
87 |
return suite; |
|
88 |
} |
|
89 |
|
|
90 |
|
|
91 |
|
|
92 |
/** |
|
93 |
* Run an initial test that always passes to check that the test |
|
94 |
* harness is working. |
|
95 |
*/ |
|
96 |
public void initialize() |
|
97 |
{ |
|
98 |
assert(1 == 1); |
|
99 |
} |
|
100 |
|
|
101 |
/** |
|
102 |
* Test if the getProtocol() function works given a url |
|
103 |
*/ |
|
104 |
public void testNCEASLogin() |
|
105 |
{ |
|
106 |
String user="uid=john,o=NCEAS,dc=ecoinformatics,dc=org"; |
|
107 |
String passwd="123456"; |
|
108 |
assert(logIn(user,passwd)); |
|
109 |
//assert( withProtocol.getProtocol().equals("http")); |
|
110 |
} |
|
111 |
|
|
112 |
public void testNCEASLoginFail() |
|
113 |
{ |
|
114 |
String user="uid=john,o=NCEAS,dc=ecoinformatics,dc=org"; |
|
115 |
String passwd="12345678"; |
|
116 |
assert(!logIn(user,passwd)); |
|
117 |
//assert( withProtocol.getProtocol().equals("http")); |
|
118 |
} |
|
119 |
public void testLterReferralLogin() |
|
120 |
{ |
|
121 |
String user="uid=jtao,o=LTER,dc=ecoinformatics,dc=org"; |
|
122 |
String passwd="qVyGpVeb"; |
|
123 |
assert(logIn(user,passwd)); |
|
124 |
//assert( withProtocol.getProtocol().equals("http")); |
|
125 |
} |
|
126 |
|
|
127 |
public void testLterReferralLoginFail() |
|
128 |
{ |
|
129 |
String user="uid=jtao,o=LTER,dc=ecoinformatics,dc=org"; |
|
130 |
String passwd="qVyGpveb"; |
|
131 |
assert(!logIn(user,passwd)); |
|
132 |
//assert( withProtocol.getProtocol().equals("http")); |
|
133 |
} |
|
134 |
|
|
135 |
public void testPiscoReferralLogin() |
|
136 |
{ |
|
137 |
String user="uid=tao,o=PISCO,dc=ecoinformatics,dc=org"; |
|
138 |
String passwd="purple"; |
|
139 |
assert(logIn(user,passwd)); |
|
140 |
//assert( withProtocol.getProtocol().equals("http")); |
|
141 |
} |
|
142 |
|
|
143 |
public void testPiscoReferralLoginFail() |
|
144 |
{ |
|
145 |
String user="uid=tao,o=PISCO,dc=ecoinformatics,dc=org"; |
|
146 |
String passwd="hello"; |
|
147 |
assert(!logIn(user,passwd)); |
|
148 |
//assert( withProtocol.getProtocol().equals("http")); |
|
149 |
} |
|
150 |
|
|
151 |
public boolean logIn(String userName, String passWord) |
|
152 |
{ |
|
153 |
Properties prop = new Properties(); |
|
154 |
prop.put("action", "login"); |
|
155 |
prop.put("qformat", "xml"); |
|
156 |
prop.put("username", userName); |
|
157 |
prop.put("password", passWord); |
|
158 |
|
|
159 |
// Now contact metacat |
|
160 |
String response = getMetacatString(prop); |
|
161 |
boolean connected = false; |
|
162 |
if (response.indexOf("<login>") != -1) { |
|
163 |
connected = true; |
|
164 |
} else { |
|
165 |
|
|
166 |
connected = false; |
|
167 |
} |
|
168 |
|
|
169 |
return connected; |
|
170 |
} |
|
171 |
|
|
172 |
public String getMetacatString(Properties prop) |
|
173 |
{ |
|
174 |
String response = null; |
|
175 |
|
|
176 |
// Now contact metacat and send the request |
|
177 |
try |
|
178 |
{ |
|
179 |
InputStreamReader returnStream = |
|
180 |
new InputStreamReader(getMetacatInputStream(prop)); |
|
181 |
StringWriter sw = new StringWriter(); |
|
182 |
int len; |
|
183 |
char[] characters = new char[512]; |
|
184 |
while ((len = returnStream.read(characters, 0, 512)) != -1) |
|
185 |
{ |
|
186 |
sw.write(characters, 0, len); |
|
187 |
} |
|
188 |
returnStream.close(); |
|
189 |
response = sw.toString(); |
|
190 |
sw.close(); |
|
191 |
} |
|
192 |
catch(Exception e) |
|
193 |
{ |
|
194 |
|
|
195 |
} |
|
196 |
|
|
197 |
return response; |
|
198 |
} |
|
199 |
|
|
200 |
/** |
|
201 |
* Send a request to Metacat |
|
202 |
* |
|
203 |
* @param prop the properties to be sent to Metacat |
|
204 |
* @return InputStream as returned by Metacat |
|
205 |
*/ |
|
206 |
public InputStream getMetacatInputStream(Properties prop) |
|
207 |
{ |
|
208 |
InputStream returnStream = null; |
|
209 |
// Now contact metacat and send the request |
|
210 |
try |
|
211 |
{ |
|
212 |
|
|
213 |
URL url = new URL(metacatURL); |
|
214 |
HttpMessage msg = new HttpMessage(url); |
|
215 |
returnStream = msg.sendPostMessage(prop); |
|
216 |
return returnStream; |
|
217 |
} |
|
218 |
catch(Exception e) |
|
219 |
{ |
|
220 |
e.printStackTrace(System.err); |
|
221 |
|
|
222 |
} |
|
223 |
return returnStream; |
|
224 |
|
|
225 |
} |
|
226 |
|
|
227 |
|
|
228 |
|
|
229 |
} |
|
0 | 230 |
Also available in: Unified diff
This file now contaions login testing for nceas, pisco and lter ldap server. It includes both successful and failed login testing.
More testing such as insert xml document and data file ... will coming.