blob: 205f8422601cdd1b961df861285a09748303449c [file] [log] [blame]
//
// ========================================================================
// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.util.resource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import org.eclipse.jetty.util.IO;
import org.junit.Test;
public class ResourceCollectionTest
{
@Test
public void testMutlipleSources1() throws Exception
{
ResourceCollection rc1 = new ResourceCollection(new String[]{
"src/test/resources/org/eclipse/jetty/util/resource/one/",
"src/test/resources/org/eclipse/jetty/util/resource/two/",
"src/test/resources/org/eclipse/jetty/util/resource/three/"
});
assertEquals("1 - one", getContent(rc1, "1.txt"));
assertEquals("2 - two", getContent(rc1, "2.txt"));
assertEquals("3 - three", getContent(rc1, "3.txt"));
ResourceCollection rc2 = new ResourceCollection(
"src/test/resources/org/eclipse/jetty/util/resource/one/," +
"src/test/resources/org/eclipse/jetty/util/resource/two/," +
"src/test/resources/org/eclipse/jetty/util/resource/three/"
);
assertEquals("1 - one", getContent(rc2, "1.txt"));
assertEquals("2 - two", getContent(rc2, "2.txt"));
assertEquals("3 - three", getContent(rc2, "3.txt"));
}
@Test
public void testMergedDir() throws Exception
{
ResourceCollection rc = new ResourceCollection(new String[]{
"src/test/resources/org/eclipse/jetty/util/resource/one/",
"src/test/resources/org/eclipse/jetty/util/resource/two/",
"src/test/resources/org/eclipse/jetty/util/resource/three/"
});
Resource r = rc.addPath("dir");
assertTrue(r instanceof ResourceCollection);
rc=(ResourceCollection)r;
assertEquals("1 - one", getContent(rc, "1.txt"));
assertEquals("2 - two", getContent(rc, "2.txt"));
assertEquals("3 - three", getContent(rc, "3.txt"));
}
@Test
public void testCopyTo() throws Exception
{
ResourceCollection rc = new ResourceCollection(new String[]{
"src/test/resources/org/eclipse/jetty/util/resource/one/",
"src/test/resources/org/eclipse/jetty/util/resource/two/",
"src/test/resources/org/eclipse/jetty/util/resource/three/"
});
File dest = File.createTempFile("copyto",null);
if (dest.exists())
dest.delete();
dest.mkdir();
dest.deleteOnExit();
rc.copyTo(dest);
Resource r = Resource.newResource(dest.toURI());
assertEquals("1 - one", getContent(r, "1.txt"));
assertEquals("2 - two", getContent(r, "2.txt"));
assertEquals("3 - three", getContent(r, "3.txt"));
r = r.addPath("dir");
assertEquals("1 - one", getContent(r, "1.txt"));
assertEquals("2 - two", getContent(r, "2.txt"));
assertEquals("3 - three", getContent(r, "3.txt"));
IO.delete(dest);
}
static String getContent(Resource r, String path) throws Exception
{
StringBuilder buffer = new StringBuilder();
String line = null;
try (BufferedReader br = new BufferedReader(new InputStreamReader(r.addPath(path).getURL().openStream())))
{
while((line=br.readLine())!=null)
buffer.append(line);
}
return buffer.toString();
}
}