blob: 05a7c4f9675443b402546ac7dc6ed4abffc01024 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.oodt.cas.protocol.http;
//JUnit imports
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Scanner;
import org.apache.commons.io.FileUtils;
import org.apache.oodt.cas.protocol.ProtocolFile;
import org.apache.oodt.cas.protocol.auth.NoAuthentication;
import org.apache.oodt.cas.protocol.exceptions.ProtocolException;
import org.apache.oodt.cas.protocol.http.util.HttpUtils;
import junit.framework.TestCase;
/**
* Test class for {@link HttpProtocol}.
*
* @author bfoster
*/
public class TestHttpProtocol extends TestCase {
public void testConnection() throws InstantiationException, ProtocolException {
HttpProtocol httpProtocol = new HttpProtocol();
assertFalse(httpProtocol.connected());
httpProtocol.connect("svn.apache.org", new NoAuthentication());
assertTrue(httpProtocol.connected());
}
public void testLSandCD() throws ProtocolException, InstantiationException {
HttpProtocol httpProtocol = new HttpProtocol();
httpProtocol.connect("svn.apache.org", new NoAuthentication());
assertTrue(httpProtocol.connected());
httpProtocol.cd(new ProtocolFile("repos/asf/oodt/trunk/protocol/http/src/main/java/org/apache/oodt/cas/protocol/http", true));
List<ProtocolFile> files = httpProtocol.ls();
boolean foundFile = false;
for (ProtocolFile file : files) {
if (file.getName().equals("HttpProtocol.java")) {
foundFile = true;
break;
}
}
assertTrue(foundFile);
}
public void testPWD() throws ProtocolException {
HttpProtocol httpProtocol = new HttpProtocol();
httpProtocol.connect("svn.apache.org", new NoAuthentication());
assertTrue(httpProtocol.connected());
ProtocolFile gotoDir = new ProtocolFile(httpProtocol.pwd(),
"repos/asf/oodt/trunk/protocol/http/src/test/java/org/apache/oodt/cas/protocol/http", true);
httpProtocol.cd(gotoDir);
ProtocolFile currentDir = httpProtocol.pwd();
System.out.println(gotoDir.getAbsoluteFile());
System.out.println(currentDir.getAbsoluteFile());
assertEquals(gotoDir, currentDir);
}
public void testGET() throws ProtocolException, IOException {
HttpProtocol httpProtocol = new HttpProtocol();
httpProtocol.connect("svn.apache.org", new NoAuthentication());
assertTrue(httpProtocol.connected());
httpProtocol.cd(new ProtocolFile("repos/asf/oodt/trunk/protocol/http/src/test/java/org/apache/oodt/cas"
+ "/protocol/http", true));
File bogus = File.createTempFile("bogus", "bogus");
File tmpDir = new File(bogus.getParentFile(), "TestHttpProtocol");
bogus.delete();
tmpDir.mkdirs();
File toFile = new File(tmpDir, "TestHttpProtocol.java");
httpProtocol.get(new ProtocolFile("TestHttpProtocol.java", false), toFile);
assertTrue(toFile.exists());
assertNotSame(0, toFile.length());
String fileContent = "";
Scanner scanner = new Scanner(toFile);
while(scanner.hasNextLine()) {
fileContent += scanner.nextLine();
}
assertEquals(fileContent, HttpUtils.readUrl(HttpUtils.connect(new URL("http://svn.apache.org/repos/asf/oodt/"
+ "trunk/protocol/http/src/test/java/org/"
+ "apache/oodt/cas/protocol/http/"
+ "TestHttpProtocol.java"))));
FileUtils.forceDelete(tmpDir);
}
}