import static org.junit.Assert.assertTrue;
import static play.test.Helpers.HTMLUNIT;
import static play.test.Helpers.POST;
import static play.test.Helpers.running;
import java.io.File;
import java.util.HashMap;
import org.junit.Before;
import org.junit.Test;
import com.baasbox.service.logging.BaasBoxLogger;
import play.Play;
import play.libs.F.Callback;
import play.test.TestBrowser;
import core.AbstractDocumentTest;
import core.TestConfig;
public class AdminImportTest_issue_427 extends AbstractDocumentTest {
//https://github.com/baasbox/baasbox/issues/427
//No Push Messages after Migration
private static File correctZipFile;
@Override
public String getRouteAddress() {
return "/admin/db/import";
}
@Override
public String getMethod() {
return POST;
}
@Override
protected void assertContent(String s) {
// TODO Auto-generated method stub
}
/**
* Testing import functionality...while the db is in import mode
* the db shouldn't be accessible
* @throws Exception
*/
@Test
public void testPostImportIssue427() throws Exception
{
running
(
getTestServer(),
HTMLUNIT,
new Callback<TestBrowser>()
{
public void invoke(TestBrowser browser)
{
//deleting old test certificates
File folder = Play.application().getFile("certificates");
if (folder.exists()){
BaasBoxLogger.info ("Deleting old test certificates...");
File certificate = Play.application().getFile("certificates/TestFakeCertificateProd.p12");
if (certificate.exists()) certificate.delete();
certificate = Play.application().getFile("certificates/TestFakeCertificateSand.p12");
if (certificate.exists()) certificate.delete();
BaasBoxLogger.info ("...done");
}
//load a backup we did using v.0.8.3
setHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
setHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
setMultipartFormData();
setAssetFile("/issue_427_No_Push_Messages_after_Migration.zip", "application/zip");
int status = httpRequest("http://localhost:3333"+getRouteAddress(), getMethod(),new HashMap<String,String>());
assertTrue("Import DB Failed! Status: " + status,status==200);
//check if the certificates have been deployed
folder = Play.application().getFile("certificates");
assertTrue(folder.exists());
File certificate = Play.application().getFile("certificates/TestFakeCertificateProd.p12");
assertTrue("TestFakeCertificateProd.p12 not found!",certificate.exists());
certificate = Play.application().getFile("certificates/TestFakeCertificateSand.p12");
assertTrue("TestFakeCertificateSand.p12 not found!",certificate.exists());
}
}
);
}
}