Project

General

Profile

« Previous | Next » 

Revision 1050

Added by Jing Tao over 22 years ago

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.

View differences:

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