package model.amazon;
import java.util.List;
import org.openedit.entermedia.BaseEnterMediaTest;
import org.openedit.entermedia.MediaArchive;
import org.openedit.repository.ContentItem;
import com.openedit.page.Page;
public class S3RepositoryTest extends BaseEnterMediaTest
{
public S3Repository getRepo()
{
//MediaArchive archive = getMediaArchive();
//
// X509TrustManager tm = new X509TrustManager() {
//
// public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
// }
//
// public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
// }
//
// public X509Certificate[] getAcceptedIssuers() {
// return null;
// }
// };
//Object obj = archive.getModuleManager().getBean(archive.getCatalogId(), "S3Repository");;
// System.out.println( obj.class );
// System.out.println( S3Repository.getClass() );
//
// Repository brepo = (Repository)obj;
S3Repository repo = new S3Repository();
//repo.setRoot(getRoot());
repo.setExternalPath(getRoot().getAbsolutePath() + "/WEB-INF/s3cache" );
repo.setPath("/WEB-INF/data/test/originals/bucket1");
repo.setBucket("entermedia-test2");
repo.setAccessKey("XAKIAJE2NDJOL64XXXXX");
repo.setSecretKey("XuccOTK07Wr0aqZufTwE2VcyeHPsf+mJtc2XXXX");
return repo;
}
public void testListing() throws Exception
{
//requires a mount to be setup in oemounts.xml
MediaArchive archive = getMediaArchive();
S3Repository repo = getRepo();
List children = repo.getChildrenNames("/WEB-INF/data/test/originals/bucket1");
assertTrue(children.size() == 2);
ContentItem item = repo.getStub((String)children.get(0));
assertNotNull(item.getName());
ContentItem sitem = repo.get("/WEB-INF/data/test/originals/bucket1/sub1");
assertTrue( sitem.isFolder() );
assertTrue( sitem.exists() );
sitem = repo.getStub("/WEB-INF/data/test/originals/bucket1/sub1");
assertTrue( sitem.isFolder() );
assertTrue( sitem.exists() );
children = repo.getChildrenNames("/WEB-INF/data/test/originals/bucket1/sub1/sub2");
assertTrue(children.size() == 2);
}
public void testPutAPI() throws Exception
{
//requires a mount to be setup in oemounts.xml
MediaArchive archive = getMediaArchive();
Page testfile = archive.getPageManager().getPage("/WEB-INF/server.png");
assertTrue( testfile.exists() );
S3Repository repo = getRepo();
ContentItem itemsave = testfile.getContentItem();
itemsave.setPath("/WEB-INF/data/test/originals/bucket1/sub1/sub2/server.png");
repo.put(itemsave);
ContentItem i = repo.get("/WEB-INF/data/test/originals/bucket1/sub1/sub2/server-rack-cabinet-mdMOVED.png");
Page testfilecopy = archive.getPageManager().getPage("/WEB-INF/server_copy.png");
archive.getPageManager().copyPage(testfile,testfilecopy);
repo.move(testfilecopy.getContentItem(), i);
// i = repo.get("/WEB-INF/data/test/originals/bucket1/sub1/sub2/server-rack-cabinet-md.png");
//
// assertNotNull(i);
// assertTrue(i.exists());
//assertTrue(i.getInputStream().available() > 0 );
ContentItem stub = repo.getStub("/WEB-INF/data/test/originals/bucket1/sub1/sub2/server-rack-cabinet-mdMOVED.png");
assertNotNull(stub);
assertTrue(stub.exists());
assertFalse(stub.isFolder());
assertTrue(stub.getLastModified() > 0 );
String path = stub.getAbsolutePath();
assertTrue( path.contains("/WEB-INF/s3cache/"));
// URL url = getRepo().getPresignedURL("/clients/embed/index.html", now.getTime());
// assertNotNull(url);
// String urlstring = url.toString();
// assertNotNull(urlstring);
// BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
// while (true) {
// String line = reader.readLine();
// if (line == null) break;
// assertTrue(line.contains("expired"));
//
// }
//
// reader.close();
//
// now.add(Calendar.DAY_OF_YEAR, 2);
//
// url = getRepo().getPresignedURL("/clients/embed/index.html", now.getTime());
//
// urlstring = url.toString();
// BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
// while (true) {
// String line = reader.readLine();
// if (line == null) break;
// assertFalse(line.contains("expired"));
//
// }
// assertTrue(getRepo().doesExist("/clients/embed/index.html"));
//Page dest = archive.getPageManager().getPage("/" + archive.getCatalogId() + "/publishing/smartjog/sub/index.html");
// archive.getPageManager().copyPage(testfile, dest);
// assertTrue(dest.exists());
// archive.getPageManager().removePage(dest);
// assertFalse(dest.exists());
}
}