trivial: adding more test cases

git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/commons/filevault/trunk@1726930 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestBinarylessExport.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestBinarylessExport.java
index a18e534..1d078f4 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestBinarylessExport.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestBinarylessExport.java
@@ -50,20 +50,28 @@
  */
 public class TestBinarylessExport extends IntegrationTestBase {
 
-    private final String BIG_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse vel dui in elit venenatis dictum sed nec arcu. Phasellus aliquam imperdiet tincidunt. Vestibulum lacinia mollis mi. Cras non metus.";
-    private final String SMALL_TEXT = "Lorem ipsum";
-    private final String BINARY_NODE_PATH = "/tmp/binaryless/node";
-    private final String BIG_BINARY_PROPERTY = "bigbin";
-    private final String SMALL_BINARY_PROPERTY = "smallbin";
+    private final static String SMALL_TEXT = "Lorem ipsum";
+    private final static String BINARY_NODE_PATH = "/tmp/binaryless/node";
+    private final static String BIG_BINARY_PROPERTY = "bigbin";
+    private final static String SMALL_BINARY_PROPERTY = "smallbin";
 
-    private final String FILE_NODE_PATH = "/tmp/binaryless/file";
+    private final static String FILE_NODE_PATH = "/tmp/binaryless/file";
 
 
+    private final static int BIG_TEXT_LENGTH = 0x1000 * 64;
+    private final static String BIG_TEXT;
+    static {
+        StringBuilder buffer = new StringBuilder(BIG_TEXT_LENGTH);
+        buffer.append("0123456789abcdef");
+        while (buffer.length() < BIG_TEXT_LENGTH) {
+            buffer.append(buffer, 0, buffer.length());
+        }
+        BIG_TEXT = buffer.toString();
+    }
 
 
     @Before
     public void setup() throws RepositoryException, PackageException, IOException {
-
         Node binaryNode = JcrUtils.getOrCreateByPath(BINARY_NODE_PATH, "nt:unstructured", admin);
 
         Binary bigBin = admin.getValueFactory().createBinary(IOUtils.toInputStream(BIG_TEXT, "UTF-8"));
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestPackageInstall.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestPackageInstall.java
index fce5464..6412fcd 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestPackageInstall.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestPackageInstall.java
@@ -20,7 +20,10 @@
 import java.io.File;
 import java.io.IOException;
 
+import javax.jcr.Binary;
 import javax.jcr.NodeIterator;
+import javax.jcr.Property;
+import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.FileUtils;
@@ -373,6 +376,20 @@
         }
     }
 
+    /**
+     * Installs a package that and checks if snapshot is created
+     */
+    @Test
+    public void testBinaryProperties() throws RepositoryException, IOException, PackageException {
+        JcrPackage pack = packMgr.upload(getStream("testpackages/tmp_binary.zip"), false);
+        assertNotNull(pack);
+        pack.install(getDefaultOptions());
+
+        Property p = admin.getProperty("/tmp/binary/test/jcr:data");
+        assertEquals(PropertyType.BINARY, p.getType());
+        assertEquals("this is binary data.\n", p.getString());
+    }
+
     // todo: upload with version
     // todo: rename
 
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestUserContentPackage.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestUserContentPackage.java
index 14a6e5b..a60b7fe 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestUserContentPackage.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/TestUserContentPackage.java
@@ -299,7 +299,7 @@
         User u = mgr.createUser(ID_TEST_USER_A, "nonce");
         Node node = admin.getNode(u.getPath());
 
-        node.setProperty("mv", new String[]{"mv1"});
+        node.setProperty("mv", new String[]{"mv1", "mv2"});
         Property property = node.getProperty("mv");
         assertTrue(property.isMultiple());
         admin.save();
@@ -325,6 +325,35 @@
 
     }
 
+    @Test
+    public void install_single_mv_property() throws RepositoryException, IOException, PackageException {
+        UserManager mgr = ((JackrabbitSession) admin).getUserManager();
+        User u = mgr.createUser(ID_TEST_USER_A, "nonce");
+        Node node = admin.getNode(u.getPath());
+
+        node.setProperty("mv", new String[]{"mv1"});
+        Property property = node.getProperty("mv");
+        assertTrue(property.isMultiple());
+        admin.save();
+
+        File tmpFile = createPackage("test", "test", u.getPath());
+        u.remove();
+        u = (User)  mgr.getAuthorizable(ID_TEST_USER_A);
+        assertNull(u);
+
+        JcrPackage pack = packMgr.upload(tmpFile, true, true, null);
+        assertNotNull(pack);
+        ImportOptions opts = getDefaultOptions();
+        pack.install(opts);
+
+        u = (User)  mgr.getAuthorizable(ID_TEST_USER_A);
+        assertNotNull(u);
+
+        node = admin.getNode(u.getPath());
+        property = node.getProperty("mv");
+        assertTrue(property.isMultiple());
+    }
+
 
     private User installUserA(ImportMode mode, boolean usePkgPath, boolean expectPkgPath) throws RepositoryException, IOException, PackageException {
         UserManager mgr = ((JackrabbitSession) admin).getUserManager();
@@ -407,7 +436,7 @@
 
         opts.setMetaInf(inf);
 
-        File tmpFile = File.createTempFile("vaulttest", "zip");
+        File tmpFile = File.createTempFile("vaulttest", ".zip");
         VaultPackage pkg = packMgr.assemble(admin, opts, tmpFile);
 
         pkg.close();
diff --git a/vault-core/src/test/resources/org/apache/jackrabbit/vault/packaging/integration/testpackages/tmp_binary.zip b/vault-core/src/test/resources/org/apache/jackrabbit/vault/packaging/integration/testpackages/tmp_binary.zip
new file mode 100644
index 0000000..f9bce2d
--- /dev/null
+++ b/vault-core/src/test/resources/org/apache/jackrabbit/vault/packaging/integration/testpackages/tmp_binary.zip
Binary files differ