/* * 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.cocoon.components.source.impl; import org.apache.cocoon.core.container.ContainerTestCase; import org.apache.excalibur.source.SourceResolver; import org.apache.webdav.lib.WebdavResource; /** * @version $Id$ */ public class WebDAVSourceTestCase extends ContainerTestCase { private String m_scheme = "webdav"; private String m_credentials = "usr:pwd"; private String m_authority = "localhost:8888"; private String m_path = "/webdav/"; private String m_name = "files"; private String m_location = m_scheme + "://" + m_credentials + "@" + m_authority + m_path + m_name; private String m_secure = m_scheme + "://" + m_authority + m_path + m_name; private String m_options = "?cocoon:webdav-action=" + WebdavResource.NOACTION + "&cocoon:webdav-depth=0"; public void testResolve() throws Exception { SourceResolver resolver = (SourceResolver) lookup(SourceResolver.ROLE); String uri = m_location + m_options; WebDAVSource source = (WebDAVSource) resolver.resolveURI(uri); assertEquals(m_location, source.getURI()); assertEquals(m_scheme, source.getScheme()); assertEquals(m_name, source.getName()); assertEquals(m_secure, source.getSecureURI()); resolver.release(source); } public void testTraversal() throws Exception { // SourceResolver resolver = (SourceResolver) lookup(SourceResolver.ROLE); // String uri = m_location + m_options; // TraversableSource source = (TraversableSource) resolver.resolveURI(uri); // assertTrue(source.isCollection()); // assertTrue(source.exists()); // Iterator children = source.getChildren().iterator(); // if (children.hasNext()) { // TraversableSource child = (TraversableSource) children.next(); // assertEquals(m_scheme, child.getScheme()); // TraversableSource parent = (TraversableSource) child.getParent(); // assertEquals(m_scheme, parent.getScheme()); // assertEquals(m_name, parent.getName()); // assertTrue(parent.isCollection()); // resolver.release(child); // } // // TraversableSource child = (TraversableSource) source.getChild("childcollection"); // assertEquals(child.getURI(), m_location + "/childcollection"); // // TraversableSource parent = (TraversableSource) child.getParent(); // assertEquals(m_name, parent.getName()); // // resolver.release(source); } public void testModification() throws Exception { // SourceResolver resolver = (SourceResolver) lookup(SourceResolver.ROLE); // String uri = m_location + m_options; // // ModifiableTraversableSource source = (ModifiableTraversableSource) resolver.resolveURI(uri); // ModifiableTraversableSource child = (ModifiableTraversableSource) source.getChild("newdoc.txt"); // assertTrue(!child.exists()); // // // create document // String hello = "hello world"; // OutputStream out = child.getOutputStream(); // out.write(hello.getBytes()); // out.close(); // // assertTrue(child.exists()); // // // read contents // byte[] read = new byte[hello.length()]; // InputStream in = child.getInputStream(); // in.read(read); // // // compare // assertEquals(hello, new String(read)); // // child.delete(); // assertTrue(!child.exists()); // // resolver.release(source); // resolver.release(child); } public void testMakeCollection() throws Exception { // SourceResolver resolver = (SourceResolver) lookup(SourceResolver.ROLE); // String uri = m_location + m_options; // ModifiableTraversableSource source = (ModifiableTraversableSource) resolver.resolveURI(uri); // ModifiableTraversableSource child = (ModifiableTraversableSource) source.getChild("child"); // ModifiableTraversableSource descendant = (ModifiableTraversableSource) source.getChild("child/decendant"); // // assertTrue(!child.exists()); // descendant.makeCollection(); // assertTrue(child.exists()); // assertTrue(descendant.exists()); // child.delete(); // assertTrue(!child.exists()); // descendant.refresh(); // assertTrue(!descendant.exists()); // // resolver.release(child); // resolver.release(source); } }