aboutsummaryrefslogtreecommitdiff
path: root/builder/src/test
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2013-04-04 12:27:55 -0700
committerXavier Ducrohet <xav@android.com>2013-04-04 12:27:55 -0700
commit85d76628e7d82bc8091a2a5858065dec35d04b8d (patch)
tree32c3154107f8172e880138b716e61a46ac83daa6 /builder/src/test
parent70d8da910ca4898a36e6dc68609bd7ca90a239a3 (diff)
downloadbuild-85d76628e7d82bc8091a2a5858065dec35d04b8d.tar.gz
Move the resource/asset merger to sdk-common
Also move some required classes to sdk-common and testutils. Change-Id: I8d5c9eeb75bcf450a01dda2262b41ae8fc0f6817
Diffstat (limited to 'builder/src/test')
-rw-r--r--builder/src/test/java/com/android/builder/TestUtils.java74
-rw-r--r--builder/src/test/java/com/android/builder/internal/incremental/DependencyDataTest.java6
-rw-r--r--builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java4
-rwxr-xr-xbuilder/src/test/java/com/android/builder/resources/AssetMergerTest.java402
-rw-r--r--builder/src/test/java/com/android/builder/resources/AssetSetTest.java76
-rw-r--r--builder/src/test/java/com/android/builder/resources/BaseTestCase.java152
-rw-r--r--builder/src/test/java/com/android/builder/resources/NodeUtilsTest.java118
-rw-r--r--builder/src/test/java/com/android/builder/resources/RecordingLogger.java74
-rwxr-xr-xbuilder/src/test/java/com/android/builder/resources/ResourceMergerTest.java820
-rw-r--r--builder/src/test/java/com/android/builder/resources/ResourceSetTest.java113
-rw-r--r--builder/src/test/java/com/android/builder/resources/ValueResourceParserTest.java86
-rw-r--r--builder/src/test/resources/testData/assets/baseMerge/merger.xml17
-rw-r--r--builder/src/test/resources/testData/assets/baseMerge/overlay/foo/icon.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/baseMerge/overlay/icon2.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/baseSet/foo/foo.dat1
-rw-r--r--builder/src/test/resources/testData/assets/baseSet/foo/icon.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/baseSet/main.xml14
-rw-r--r--builder/src/test/resources/testData/assets/baseSet/values.xml80
-rw-r--r--builder/src/test/resources/testData/assets/dupSet/assets1/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/dupSet/assets2/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/foo/overlay_added.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/overlay_removed.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/removed.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/touched.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/untouched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/added.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/foo/overlay_added.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/overlay_removed.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/touched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/untouched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/merger.xml17
-rw-r--r--builder/src/test/resources/testData/assets/incMergeData/basicFiles/overlay/foo/overlay_added.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/merger.xml93
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/overlay/drawable-ldpi/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/overlay/drawable/icon2.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/overlay/layout/alias_replaced_by_file.xml14
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/overlay/layout/main.xml14
-rw-r--r--builder/src/test/resources/testData/resources/baseMerge/overlay/values/values.xml6
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/drawable/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/drawable/patch.9.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/layout/file_replaced_by_alias.xml14
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/layout/main.xml14
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/raw/foo.dat1
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/values/values.xml80
-rw-r--r--builder/src/test/resources/testData/resources/baseSet/values/values.xml~80
-rw-r--r--builder/src/test/resources/testData/resources/brokenSet/layout/activity_main.xml16
-rw-r--r--builder/src/test/resources/testData/resources/brokenSet/values/dimens.xmlbin813 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/dupSet/res1/drawable/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/dupSet/res2/drawable/icon.pngbin2574 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/new_overlay.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/removed_overlay.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/touched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/untouched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/merger.xml18
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/new_overlay.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable-hdpi/new_alternate.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable/new_overlay.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable-ldpi/removed.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/new_overlay.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/removed_overlay.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/touched.pngbin97 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/untouched.pngbin98 -> 0 bytes
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/main/values/values.xml6
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/merger.xml19
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values-fr/values.xml4
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values/values.xml4
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values-en/values.xml4
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values/values.xml7
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues2/main/values/values.xml5
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues2/merger.xml18
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues2/overlay/keepfolder.txt1
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/basicValues2/resOut/values/values.xml5
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/alias_replaced_by_file.xml14
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/main.xml14
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/values/values.xml5
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/merger.xml12
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/file_replaced_by_alias.xml14
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/main.xml14
-rw-r--r--builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/values/values.xml5
79 files changed, 5 insertions, 2550 deletions
diff --git a/builder/src/test/java/com/android/builder/TestUtils.java b/builder/src/test/java/com/android/builder/TestUtils.java
deleted file mode 100644
index 07e356b..0000000
--- a/builder/src/test/java/com/android/builder/TestUtils.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Utility methods to deal with loading the test data.
- */
-public class TestUtils {
-
- /**
- * returns a File for the subfolder of the test resource data.
- *
- * This is basically "src/test/resources/testData/$name".
- *
- * Note that this folder is relative to the root project which is where gradle
- * sets the current working dir when running the tests.
- *
- * If you need a full folder path, use {@link #getCanonicalRoot(String...)}.
- *
- * @param names the names of the subfolders.
- *
- * @return a File
- */
- public static File getRoot(String... names) {
- File root = null;
- for (String name : names) {
- if (root == null) {
- root = new File("src/test/resources/testData/" + name);
- } else {
- root = new File(root, name);
- }
-
- TestCase.assertTrue("Test folder '" + name + "' does not exist!",
- root.isDirectory());
-
- }
-
- return root;
- }
-
- /**
- * returns a File for the subfolder of the test resource data.
- *
- * The full path is canonized.
- * This is basically ".../src/test/resources/testData/$name".
- *
- * @param names the names of the subfolders.
- *
- * @return a File
- */
- public static File getCanonicalRoot(String... names) throws IOException {
- File root = getRoot(names);
- return root.getCanonicalFile();
- }
-}
diff --git a/builder/src/test/java/com/android/builder/internal/incremental/DependencyDataTest.java b/builder/src/test/java/com/android/builder/internal/incremental/DependencyDataTest.java
index 0a981eb..cba11f1 100644
--- a/builder/src/test/java/com/android/builder/internal/incremental/DependencyDataTest.java
+++ b/builder/src/test/java/com/android/builder/internal/incremental/DependencyDataTest.java
@@ -16,14 +16,14 @@
package com.android.builder.internal.incremental;
-import com.android.builder.TestUtils;
-import com.android.builder.resources.BaseTestCase;
+import com.android.testutils.TestUtils;
+import junit.framework.TestCase;
import java.io.File;
import java.io.IOException;
import java.util.List;
-public class DependencyDataTest extends BaseTestCase {
+public class DependencyDataTest extends TestCase {
public void testWindowsMode1() throws Exception {
DependencyData data = getData("windows_mode1.d");
diff --git a/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java b/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java
index 4492b50..3ac6bb3 100644
--- a/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java
+++ b/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java
@@ -16,8 +16,8 @@
package com.android.builder.internal.incremental;
-import com.android.builder.TestUtils;
-import com.android.builder.resources.FileStatus;
+import com.android.ide.common.res2.FileStatus;
+import com.android.testutils.TestUtils;
import com.google.common.base.Charsets;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
diff --git a/builder/src/test/java/com/android/builder/resources/AssetMergerTest.java b/builder/src/test/java/com/android/builder/resources/AssetMergerTest.java
deleted file mode 100755
index d9e1732..0000000
--- a/builder/src/test/java/com/android/builder/resources/AssetMergerTest.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.SdkConstants;
-import com.android.builder.TestUtils;
-import com.google.common.collect.ListMultimap;
-import com.google.common.io.Files;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.regex.Pattern;
-
-public class AssetMergerTest extends BaseTestCase {
-
- private static AssetMerger sAssetMerger = null;
-
- public void testMergeByCount() throws Exception {
- AssetMerger merger = getAssetMerger();
-
- assertEquals(5, merger.size());
- }
-
- public void testMergedAssetsByName() throws Exception {
- AssetMerger merger = getAssetMerger();
-
- verifyResourceExists(merger,
- "foo/icon.png",
- "icon2.png",
- "main.xml",
- "values.xml",
- "foo/foo.dat"
- );
- }
-
- public void testMergeWrite() throws Exception {
- AssetMerger merger = getAssetMerger();
-
- File folder = getWrittenResources();
-
- RecordingLogger logger = new RecordingLogger();
-
- AssetSet writtenSet = new AssetSet("unused");
- writtenSet.addSource(folder);
- writtenSet.loadFromFiles(logger);
-
- checkLogger(logger);
-
- // compare the two maps, but not using the full map as the set loaded from the output
- // won't contains all versions of each AssetItem item.
- compareResourceMaps(merger, writtenSet, false /*full compare*/);
- }
-
- public void testMergeBlob() throws Exception {
- AssetMerger merger = getAssetMerger();
-
- File folder = Files.createTempDir();
- merger.writeBlobTo(folder);
-
- AssetMerger loadedMerger = new AssetMerger();
- loadedMerger.loadFromBlob(folder);
-
- compareResourceMaps(merger, loadedMerger, true /*full compare*/);
- }
-
- /**
- * Tests the path replacement in the merger.xml file loaded from testData/
- * @throws Exception
- */
- public void testLoadingTestPathReplacement() throws Exception {
- File root = TestUtils.getRoot("assets", "baseMerge");
- File fakeRoot = getMergedBlobFolder(root);
-
- AssetMerger assetMerger = new AssetMerger();
- assetMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(assetMerger);
-
- List<AssetSet> sets = assetMerger.getDataSets();
- for (AssetSet set : sets) {
- List<File> sourceFiles = set.getSourceFiles();
-
- // there should only be one
- assertEquals(1, sourceFiles.size());
-
- File sourceFile = sourceFiles.get(0);
- assertTrue(String.format("File %s is located in %s", sourceFile, root),
- sourceFile.getAbsolutePath().startsWith(root.getAbsolutePath()));
- }
- }
-
- public void testUpdate() throws Exception {
- File root = getIncMergeRoot("basicFiles");
- File fakeRoot = getMergedBlobFolder(root);
- AssetMerger assetMerger = new AssetMerger();
- assetMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(assetMerger);
-
- List<AssetSet> sets = assetMerger.getDataSets();
- assertEquals(2, sets.size());
-
- RecordingLogger logger = new RecordingLogger();
-
- // ----------------
- // first set is the main one, no change here
- AssetSet mainSet = sets.get(0);
- File mainFolder = new File(root, "main");
-
- // touched/removed files:
- File mainTouched = new File(mainFolder, "touched.png");
- mainSet.updateWith(mainFolder, mainTouched, FileStatus.CHANGED, logger);
- checkLogger(logger);
-
- File mainRemoved = new File(mainFolder, "removed.png");
- mainSet.updateWith(mainFolder, mainRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
- File mainAdded = new File(mainFolder, "added.png");
- mainSet.updateWith(mainFolder, mainAdded, FileStatus.NEW, logger);
- checkLogger(logger);
-
- // ----------------
- // second set is the overlay one
- AssetSet overlaySet = sets.get(1);
- File overlayFolder = new File(root, "overlay");
-
- // new/removed files:
- File overlayAdded = new File(new File(overlayFolder, "foo"), "overlay_added.png");
- overlaySet.updateWith(overlayFolder, overlayAdded, FileStatus.NEW, logger);
- checkLogger(logger);
-
- File overlayRemoved = new File(overlayFolder, "overlay_removed.png");
- overlaySet.updateWith(overlayFolder, overlayRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
- // validate for duplicates
- assetMerger.validateDataSets();
-
- // check the content.
- ListMultimap<String, AssetItem> mergedMap = assetMerger.getDataMap();
-
- // check untouched.png file is WRITTEN
- List<AssetItem> untouchedItem = mergedMap.get("untouched.png");
- assertEquals(1, untouchedItem.size());
- assertTrue(untouchedItem.get(0).isWritten());
- assertFalse(untouchedItem.get(0).isTouched());
- assertFalse(untouchedItem.get(0).isRemoved());
-
- // check touched.png file is TOUCHED
- List<AssetItem> touchedItem = mergedMap.get("touched.png");
- assertEquals(1, touchedItem.size());
- assertTrue(touchedItem.get(0).isWritten());
- assertTrue(touchedItem.get(0).isTouched());
- assertFalse(touchedItem.get(0).isRemoved());
-
- // check removed file is REMOVED
- List<AssetItem> removedItem = mergedMap.get("removed.png");
- assertEquals(1, removedItem.size());
- assertTrue(removedItem.get(0).isWritten());
- assertTrue(removedItem.get(0).isRemoved());
-
- // check new overlay: two objects, last one is TOUCHED
- List<AssetItem> overlayAddedItem = mergedMap.get("foo/overlay_added.png");
- assertEquals(2, overlayAddedItem.size());
- AssetItem newOverlay0 = overlayAddedItem.get(0);
- assertTrue(newOverlay0.isWritten());
- assertFalse(newOverlay0.isTouched());
- AssetItem newOverlay1 = overlayAddedItem.get(1);
- assertEquals(overlayAdded, newOverlay1.getSource().getFile());
- assertFalse(newOverlay1.isWritten());
- assertTrue(newOverlay1.isTouched());
-
- // check removed overlay: two objects, last one is removed
- List<AssetItem> overlayRemovedItem = mergedMap.get("overlay_removed.png");
- assertEquals(2, overlayRemovedItem.size());
- AssetItem overlayRemovedItem0 = overlayRemovedItem.get(0);
- assertFalse(overlayRemovedItem0.isWritten());
- assertFalse(overlayRemovedItem0.isTouched());
- AssetItem overlayRemovedItem1 = overlayRemovedItem.get(1);
- assertEquals(overlayRemoved, overlayRemovedItem1.getSource().getFile());
- assertTrue(overlayRemovedItem1.isWritten());
- assertTrue(overlayRemovedItem1.isRemoved());
-
- // write and check the result of writeResourceFolder
- // copy the current resOut which serves as pre incremental update state.
- File resFolder = getFolderCopy(new File(root, "assetOut"));
-
- // write the content of the resource merger.
- assetMerger.writeDataFolder(resFolder);
-
- // Check the content by checking the colors. All files should be green
- checkImageColor(new File(resFolder, "untouched.png"), (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "touched.png"), (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "added.png"), (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "overlay_removed.png"), (int) 0xFF00FF00);
- checkImageColor(new File(new File(resFolder, "foo"), "overlay_added.png"), (int) 0xFF00FF00);
-
- // also check the removed file is not there.
- assertFalse(new File(resFolder, "removed.png").isFile());
- }
-
- public void testCheckValidUpdate() throws Exception {
- // first merger
- AssetMerger merger1 = createMerger(new String[][] {
- new String[] { "main", ("/main/res1"), ("/main/res2") },
- new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") },
- });
-
- // 2nd merger with different order source files in sets.
- AssetMerger merger2 = createMerger(new String[][] {
- new String[] { "main", ("/main/res2"), ("/main/res1") },
- new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") },
- });
-
- assertTrue(merger1.checkValidUpdate(merger2.getDataSets()));
-
- // write merger1 on disk to test writing empty AssetSets.
- File folder = Files.createTempDir();
- merger1.writeBlobTo(folder);
-
- // reload it
- AssetMerger loadedMerger = new AssetMerger();
- loadedMerger.loadFromBlob(folder);
-
- String expected = merger1.toString();
- String actual = loadedMerger.toString();
- if (SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_WINDOWS) {
- expected = expected.replaceAll(Pattern.quote(File.separator), "/").
- replaceAll("[A-Z]:/", "/");
- actual = actual.replaceAll(Pattern.quote(File.separator), "/").
- replaceAll("[A-Z]:/", "/");
- assertEquals("Actual: " + actual + "\nExpected: " + expected, expected, actual);
- } else {
- assertTrue("Actual: " + actual + "\nExpected: " + expected,
- loadedMerger.checkValidUpdate(merger1.getDataSets()));
- }
- }
-
-
- public void testUpdateWithRemovedOverlay() throws Exception {
- // Test with removed overlay
- AssetMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay", "/overlay/res1", "/overlay/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- AssetMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithReplacedOverlays() throws Exception {
- // Test with different overlays
- AssetMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay", "/overlay/res1", "/overlay/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- AssetMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithReorderedOverlays() throws Exception {
- // Test with different overlays
- AssetMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay1", "/overlay1/res1", "/overlay1/res2" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- AssetMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- new String[] { "overlay1", "/overlay1/res1", "/overlay1/res2" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithRemovedSourceFile() throws Exception {
- // Test with different source files
- AssetMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- AssetMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res1" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- /**
- * Creates a fake merge with given sets.
- *
- * the data is an array of sets.
- *
- * Each set is [ setName, folder1, folder2, ...]
- *
- * @param data
- * @return
- */
- private static AssetMerger createMerger(String[][] data) {
- AssetMerger merger = new AssetMerger();
- for (String[] setData : data) {
- AssetSet set = new AssetSet(setData[0]);
- merger.addDataSet(set);
- for (int i = 1, n = setData.length; i < n; i++) {
- set.addSource(new File(setData[i]));
- }
- }
-
- return merger;
- }
-
- private static AssetMerger getAssetMerger()
- throws DuplicateDataException, IOException {
- if (sAssetMerger == null) {
- File root = TestUtils.getRoot("assets", "baseMerge");
-
- AssetSet res = AssetSetTest.getBaseAssetSet();
-
- RecordingLogger logger = new RecordingLogger();
-
- AssetSet overlay = new AssetSet("overlay");
- overlay.addSource(new File(root, "overlay"));
- overlay.loadFromFiles(logger);
-
- checkLogger(logger);
-
- sAssetMerger = new AssetMerger();
- sAssetMerger.addDataSet(res);
- sAssetMerger.addDataSet(overlay);
- }
-
- return sAssetMerger;
- }
-
- private static File getWrittenResources() throws DuplicateDataException, IOException,
- ExecutionException, InterruptedException {
- AssetMerger assetMerger = getAssetMerger();
-
- File folder = Files.createTempDir();
-
- assetMerger.writeDataFolder(folder);
-
- return folder;
- }
-
- private File getIncMergeRoot(String name) throws IOException {
- File root = TestUtils.getCanonicalRoot("assets", "incMergeData");
- return new File(root, name);
- }
-
- private static File getFolderCopy(File folder) throws IOException {
- File dest = Files.createTempDir();
- copyFolder(folder, dest);
- return dest;
- }
-
- private static void copyFolder(File from, File to) throws IOException {
- if (from.isFile()) {
- Files.copy(from, to);
- } else if (from.isDirectory()) {
- if (!to.exists()) {
- to.mkdirs();
- }
-
- File[] children = from.listFiles();
- if (children != null) {
- for (File f : children) {
- copyFolder(f, new File(to, f.getName()));
- }
- }
- }
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/AssetSetTest.java b/builder/src/test/java/com/android/builder/resources/AssetSetTest.java
deleted file mode 100644
index cd4edd2..0000000
--- a/builder/src/test/java/com/android/builder/resources/AssetSetTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.builder.TestUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-public class AssetSetTest extends BaseTestCase {
-
- private static AssetSet sBaseResourceSet = null;
-
- public void testBaseAssetSetByCount() throws Exception {
- AssetSet assetSet = getBaseAssetSet();
- assertEquals(4, assetSet.size());
- }
-
- public void testBaseAssetSetByName() throws Exception {
- AssetSet assetSet = getBaseAssetSet();
-
- verifyResourceExists(assetSet,
- "foo/foo.dat",
- "foo/icon.png",
- "main.xml",
- "values.xml"
- );
- }
-
- public void testDupAssetSet() throws Exception {
- File root = TestUtils.getRoot("assets", "dupSet");
-
- AssetSet set = new AssetSet("main");
- set.addSource(new File(root, "assets1"));
- set.addSource(new File(root, "assets2"));
- boolean gotException = false;
- RecordingLogger logger = new RecordingLogger();
- try {
- set.loadFromFiles(logger);
- } catch (DuplicateDataException e) {
- gotException = true;
- }
-
- assertTrue(gotException);
- checkLogger(logger);
- }
-
- static AssetSet getBaseAssetSet() throws DuplicateDataException, IOException {
- if (sBaseResourceSet == null) {
- File root = TestUtils.getRoot("assets", "baseSet");
-
- RecordingLogger logger = new RecordingLogger();
-
- sBaseResourceSet = new AssetSet("main");
- sBaseResourceSet.addSource(root);
- sBaseResourceSet.loadFromFiles(logger);
- checkLogger(logger);
- }
-
- return sBaseResourceSet;
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/BaseTestCase.java b/builder/src/test/java/com/android/builder/resources/BaseTestCase.java
deleted file mode 100644
index a784d4b..0000000
--- a/builder/src/test/java/com/android/builder/resources/BaseTestCase.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.google.common.base.Charsets;
-import com.google.common.collect.ListMultimap;
-import com.google.common.io.Files;
-import junit.framework.TestCase;
-
-import javax.imageio.ImageIO;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.regex.Matcher;
-
-public abstract class BaseTestCase extends TestCase {
-
- protected void verifyResourceExists(DataMap<? extends DataItem> dataMap,
- String... dataItemKeys) {
- ListMultimap<String, ? extends DataItem> map = dataMap.getDataMap();
-
- for (String resKey : dataItemKeys) {
- List<? extends DataItem> items = map.get(resKey);
- assertTrue("resource '" + resKey + "' is missing!", items.size() > 0);
- }
- }
-
- /**
- * Compares two resource maps.
- *
- * if <var>fullCompare</var> is <code>true</code> then it'll make sure the multimaps contains
- * the same number of items, otherwise it'll only checks that each resource key is present
- * in both maps.
- *
- * @param dataMap1 the first resource Map
- * @param dataMap2 the second resource Map
- * @param fullCompare whether a full compare is requested.
- */
- protected void compareResourceMaps(DataMap<? extends DataItem> dataMap1,
- DataMap<? extends DataItem> dataMap2,
- boolean fullCompare) {
- assertEquals(dataMap1.size(), dataMap2.size());
-
- // compare the resources are all the same
- ListMultimap<String, ? extends DataItem> map1 = dataMap1.getDataMap();
- ListMultimap<String, ? extends DataItem> map2 = dataMap2.getDataMap();
- for (String key : map1.keySet()) {
- List<? extends DataItem> items1 = map1.get(key);
- List<? extends DataItem> items2 = map2.get(key);
- if (fullCompare) {
- assertEquals("Wrong size for " + key, items1.size(), items2.size());
- } else {
- boolean map1HasItem = items1.size() > 0;
- boolean map2HasItem = items2.size() > 0;
- assertEquals("resource " + key + " missing from one map", map1HasItem, map2HasItem);
- }
- }
- }
-
- protected static void checkImageColor(File file, int expectedColor) throws IOException {
- assertTrue("File '" + file.getAbsolutePath() + "' does not exist.", file.isFile());
-
- BufferedImage image = ImageIO.read(file);
- int rgb = image.getRGB(0, 0);
- assertEquals(String.format("Expected: 0x%08X, actual: 0x%08X for file %s",
- expectedColor, rgb, file),
- expectedColor, rgb);
- }
-
- /**
- * Returns a folder containing a merger blob data for the given test data folder.
- *
- * This is to work around the fact that the merger blob data contains full path, but we don't
- * know where this project is located on the drive. This rewrites the blob to contain the
- * actual folder.
- * (The blobs written in the test data contains placeholders for the path root and path
- * separators)
- *
- * @param folder
- * @return
- * @throws java.io.IOException
- */
- protected static File getMergedBlobFolder(File folder) throws IOException {
- File originalMerger = new File(folder, AssetMerger.FN_MERGER_XML);
-
- String content = Files.toString(originalMerger, Charsets.UTF_8);
-
- // search and replace $TOP$ with the root and $SEP$ with the platform separator.
- content = content.replaceAll(
- "\\$TOP\\$", Matcher.quoteReplacement(folder.getAbsolutePath())).
- replaceAll("\\$SEP\\$", Matcher.quoteReplacement(File.separator));
-
- File tempFolder = Files.createTempDir();
- Files.write(content, new File(tempFolder, AssetMerger.FN_MERGER_XML), Charsets.UTF_8);
-
- return tempFolder;
- }
-
- /**
- * Post {@link #getMergedBlobFolder(java.io.File)} check. After the DataMerger is created
- * from the file generated, this checks that the file replacement works and all the files are
- * where they are supposed to be.
- *
- * @param dataMerger
- */
- protected void checkSourceFolders(
- DataMerger<? extends DataItem, ? extends DataFile, ? extends DataSet> dataMerger) {
-
- // Loop on all the data sets.
- for (DataSet<? extends DataItem, ? extends DataFile> set : dataMerger.getDataSets()) {
- // get the source files and verify they exists.
- List<File> files = set.getSourceFiles();
- for (File file : files) {
- assertTrue("Not a folder: " + file.getAbsolutePath(), file.isDirectory());
- }
-
- // for each source file, also check that the files inside are in fact inside
- // them. We don't check if those files are there though because the tests could
- // be testing with missing files to simulate updates.
- ListMultimap<String, ? extends DataItem> itemMap = set.getDataMap();
-
- for (DataItem item : itemMap.values()) {
- DataFile dataFile = item.getSource();
- File file = dataFile.getFile();
-
- assertNotNull("Not in source file: " + file.getAbsolutePath(),
- set.findMatchingSourceFile(file));
- }
- }
- }
-
- protected static void checkLogger(RecordingLogger logger) {
- if (!logger.getErrorMsgs().isEmpty()) {
- assertTrue(logger.getErrorMsgs().get(0), false);
- }
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/NodeUtilsTest.java b/builder/src/test/java/com/android/builder/resources/NodeUtilsTest.java
deleted file mode 100644
index 70d25e7..0000000
--- a/builder/src/test/java/com/android/builder/resources/NodeUtilsTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import junit.framework.TestCase;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-public class NodeUtilsTest extends TestCase {
-
- public void testBasicAttributes() throws Exception {
- Document document = createDocument();
-
- // create two nodes
- Node node1 = document.createElement("N1");
- Node node2 = document.createElement("N2");
-
- NodeUtils.addAttribute(document, node1, null, "foo", "bar");
- NodeUtils.addAttribute(document, node2, null, "foo", "bar");
- assertTrue(NodeUtils.compareAttributes(node1.getAttributes(), node2.getAttributes()));
-
- NodeUtils.addAttribute(document, node1, null, "foo2", "bar2");
- assertFalse(NodeUtils.compareAttributes(node1.getAttributes(), node2.getAttributes()));
-
- NodeUtils.addAttribute(document, node2, null, "foo2", "bar");
- assertFalse(NodeUtils.compareAttributes(node1.getAttributes(), node2.getAttributes()));
- }
-
- public void testNamespaceAttributes() throws Exception {
- Document document = createDocument();
-
- // create two nodes
- Node node1 = document.createElement("N1");
- Node node2 = document.createElement("N2");
-
- NodeUtils.addAttribute(document, node1, "http://some.uri/", "foo", "bar");
- NodeUtils.addAttribute(document, node2, "http://some.uri/", "foo", "bar");
- assertTrue(NodeUtils.compareAttributes(node1.getAttributes(), node2.getAttributes()));
-
- NodeUtils.addAttribute(document, node1, "http://some.uri/", "foo2", "bar2");
- NodeUtils.addAttribute(document, node2, "http://some.other.uri/", "foo2", "bar2");
- assertFalse(NodeUtils.compareAttributes(node1.getAttributes(), node2.getAttributes()));
- }
-
- public void testNodesWithChildrenNodes() throws Exception {
- Document document = createDocument();
-
- // create two nodes
- Node node1 = document.createElement("some-node");
- Node node2 = document.createElement("some-node");
-
- Node child1a = document.createElement("child1");
- Node child1b = document.createElement("child2");
- node1.appendChild(child1a).appendChild(child1b);
-
- Node child2a = document.createElement("child1");
- Node child2b = document.createElement("child2");
- node2.appendChild(child2a).appendChild(child2b);
-
- assertTrue(NodeUtils.compareElementNode(node1, node2));
- }
-
- public void testAdoptNode() throws Exception {
- Document document = createDocument();
- Node rootNode = document.createElement("root");
- document.appendChild(rootNode);
-
- // create a single s
- Node node = document.createElement("some-node");
-
- // add some children
- Node child1 = document.createElement("child1");
- Node child2 = document.createElement("child2");
- node.appendChild(child1).appendChild(child2);
-
- // add some attributes
- NodeUtils.addAttribute(document, node, null, "foo", "bar");
- NodeUtils.addAttribute(document, node, "http://some.uri", "foo2", "bar2");
- NodeUtils.addAttribute(document, child1, "http://some.other.uri", "blah", "test");
- NodeUtils.addAttribute(document, child2, "http://another.uri", "blah", "test");
-
- // create the other document to receive the adopted node. It must have a root node.
- Document document2 = createDocument();
- rootNode = document2.createElement("root");
- document2.appendChild(rootNode);
-
- assertTrue(NodeUtils.compareElementNode(node, NodeUtils.adoptNode(document2, node)));
- }
-
- private static Document createDocument() throws ParserConfigurationException {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- factory.setValidating(false);
- factory.setIgnoringComments(true);
- DocumentBuilder builder;
-
- builder = factory.newDocumentBuilder();
- return builder.newDocument();
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/RecordingLogger.java b/builder/src/test/java/com/android/builder/resources/RecordingLogger.java
deleted file mode 100644
index 6acc36f..0000000
--- a/builder/src/test/java/com/android/builder/resources/RecordingLogger.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.annotations.NonNull;
-import com.android.annotations.Nullable;
-import com.android.utils.ILogger;
-import com.google.common.collect.Lists;
-
-import java.lang.Override;
-import java.lang.String;
-import java.lang.Throwable;
-import java.util.List;
-
-/**
- * Implementation of the ILogger interface that records all the logs.
- */
-public class RecordingLogger implements ILogger {
-
- private final List<String> mErrorMsgs = Lists.newArrayList();
- private final List<String> mWarningMsgs = Lists.newArrayList();
- private final List<String> mInfoMsgs = Lists.newArrayList();
- private final List<String> mVerboseMsgs = Lists.newArrayList();
-
- @Override
- public void error(@Nullable Throwable t, @Nullable String msgFormat, Object... args) {
- mErrorMsgs.add(String.format(msgFormat, args));
- }
-
- @Override
- public void warning(@NonNull String msgFormat, Object... args) {
- mWarningMsgs.add(String.format(msgFormat, args));
- }
-
- @Override
- public void info(@NonNull String msgFormat, Object... args) {
- mInfoMsgs.add(String.format(msgFormat, args));
- }
-
- @Override
- public void verbose(@NonNull String msgFormat, Object... args) {
- mVerboseMsgs.add(String.format(msgFormat, args));
- }
-
- public List<String> getErrorMsgs() {
- return mErrorMsgs;
- }
-
- public List<String> getWarningMsgs() {
- return mWarningMsgs;
- }
-
- public List<String> getInfoMsgs() {
- return mInfoMsgs;
- }
-
- public List<String> getVerboseMsgs() {
- return mVerboseMsgs;
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java b/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java
deleted file mode 100755
index 7b20649..0000000
--- a/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java
+++ /dev/null
@@ -1,820 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.SdkConstants;
-import com.android.builder.TestUtils;
-import com.android.resources.ResourceFolderType;
-import com.android.resources.ResourceType;
-import com.google.common.base.Charsets;
-import com.google.common.collect.ListMultimap;
-import com.google.common.collect.Maps;
-import com.google.common.io.Files;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutionException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class ResourceMergerTest extends BaseTestCase {
-
- private static ResourceMerger sResourceMerger = null;
-
- public void testMergeByCount() throws Exception {
- ResourceMerger merger = getResourceMerger();
-
- assertEquals(25, merger.size());
- }
-
- public void testMergedResourcesByName() throws Exception {
- ResourceMerger merger = getResourceMerger();
-
- verifyResourceExists(merger,
- "drawable/icon",
- "drawable-ldpi/icon",
- "drawable/icon2",
- "raw/foo",
- "layout/main",
- "layout/layout_ref",
- "layout/alias_replaced_by_file",
- "layout/file_replaced_by_alias",
- "drawable/color_drawable",
- "drawable/drawable_ref",
- "color/color",
- "string/basic_string",
- "string/xliff_string",
- "string/styled_string",
- "style/style",
- "array/string_array",
- "attr/dimen_attr",
- "attr/string_attr",
- "attr/enum_attr",
- "attr/flag_attr",
- "declare-styleable/declare_styleable",
- "dimen/dimen",
- "id/item_id",
- "integer/integer"
- );
- }
-
- private String getPlatformPath(String path) {
- return path.replaceAll("/", Matcher.quoteReplacement(File.separator));
- }
-
- public void testReplacedLayout() throws Exception {
- ResourceMerger merger = getResourceMerger();
- ListMultimap<String, ResourceItem> mergedMap = merger.getDataMap();
-
- List<ResourceItem> values = mergedMap.get("layout/main");
-
- // the overlay means there's 2 versions of this resource.
- assertEquals(2, values.size());
- ResourceItem mainLayout = values.get(1);
-
- ResourceFile sourceFile = mainLayout.getSource();
- assertTrue(sourceFile.getFile().getAbsolutePath()
- .endsWith(getPlatformPath("overlay/layout/main.xml")));
- }
-
- public void testReplacedAlias() throws Exception {
- ResourceMerger merger = getResourceMerger();
- ListMultimap<String, ResourceItem> mergedMap = merger.getDataMap();
-
-
- List<ResourceItem> values = mergedMap.get("layout/alias_replaced_by_file");
-
- // the overlay means there's 2 versions of this resource.
- assertEquals(2, values.size());
- ResourceItem layout = values.get(1);
-
- // since it's replaced by a file, there's no node.
- assertNull(layout.getValue());
- }
-
- public void testReplacedFile() throws Exception {
- ResourceMerger merger = getResourceMerger();
- ListMultimap<String, ResourceItem> mergedMap = merger.getDataMap();
-
- List<ResourceItem> values = mergedMap.get("layout/file_replaced_by_alias");
-
- // the overlay means there's 2 versions of this resource.
- assertEquals(2, values.size());
- ResourceItem layout = values.get(1);
-
- // since it's replaced by an alias, there's a node
- assertNotNull(layout.getValue());
- }
-
- public void testMergeWrite() throws Exception {
- ResourceMerger merger = getResourceMerger();
- RecordingLogger logger = new RecordingLogger();
-
- File folder = getWrittenResources();
-
- ResourceSet writtenSet = new ResourceSet("unused");
- writtenSet.addSource(folder);
- writtenSet.loadFromFiles(logger);
-
- // compare the two maps, but not using the full map as the set loaded from the output
- // won't contains all versions of each ResourceItem item.
- compareResourceMaps(merger, writtenSet, false /*full compare*/);
- checkLogger(logger);
- }
-
- public void testMergeBlob() throws Exception {
- ResourceMerger merger = getResourceMerger();
-
- File folder = Files.createTempDir();
- merger.writeBlobTo(folder);
-
- ResourceMerger loadedMerger = new ResourceMerger();
- loadedMerger.loadFromBlob(folder);
-
- compareResourceMaps(merger, loadedMerger, true /*full compare*/);
- }
-
- /**
- * Tests the path replacement in the merger.xml file loaded from testData/
- * @throws Exception
- */
- public void testLoadingTestPathReplacement() throws Exception {
- File root = TestUtils.getRoot("resources", "baseMerge");
- File fakeRoot = getMergedBlobFolder(root);
-
- ResourceMerger resourceMerger = new ResourceMerger();
- resourceMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(resourceMerger);
-
- List<ResourceSet> sets = resourceMerger.getDataSets();
- for (ResourceSet set : sets) {
- List<File> sourceFiles = set.getSourceFiles();
-
- // there should only be one
- assertEquals(1, sourceFiles.size());
-
- File sourceFile = sourceFiles.get(0);
- assertTrue(String.format("File %s is located in %s", sourceFile, root),
- sourceFile.getAbsolutePath().startsWith(root.getAbsolutePath()));
- }
- }
-
- public void testUpdateWithBasicFiles() throws Exception {
- File root = getIncMergeRoot("basicFiles");
- File fakeRoot = getMergedBlobFolder(root);
- ResourceMerger resourceMerger = new ResourceMerger();
- resourceMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(resourceMerger);
-
- List<ResourceSet> sets = resourceMerger.getDataSets();
- assertEquals(2, sets.size());
-
- RecordingLogger logger = new RecordingLogger();
-
- // ----------------
- // first set is the main one, no change here
- ResourceSet mainSet = sets.get(0);
- File mainBase = new File(root, "main");
- File mainDrawable = new File(mainBase, "drawable");
- File mainDrawableLdpi = new File(mainBase, "drawable-ldpi");
-
- // touched/removed files:
- File mainDrawableTouched = new File(mainDrawable, "touched.png");
- mainSet.updateWith(mainBase, mainDrawableTouched, FileStatus.CHANGED, logger);
- checkLogger(logger);
-
- File mainDrawableRemoved = new File(mainDrawable, "removed.png");
- mainSet.updateWith(mainBase, mainDrawableRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
- File mainDrawableLdpiRemoved = new File(mainDrawableLdpi, "removed.png");
- mainSet.updateWith(mainBase, mainDrawableLdpiRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
- // ----------------
- // second set is the overlay one
- ResourceSet overlaySet = sets.get(1);
- File overlayBase = new File(root, "overlay");
- File overlayDrawable = new File(overlayBase, "drawable");
- File overlayDrawableHdpi = new File(overlayBase, "drawable-hdpi");
-
- // new/removed files:
- File overlayDrawableNewOverlay = new File(overlayDrawable, "new_overlay.png");
- overlaySet.updateWith(overlayBase, overlayDrawableNewOverlay, FileStatus.NEW, logger);
- checkLogger(logger);
-
- File overlayDrawableRemovedOverlay = new File(overlayDrawable, "removed_overlay.png");
- overlaySet.updateWith(overlayBase, overlayDrawableRemovedOverlay, FileStatus.REMOVED,
- logger);
- checkLogger(logger);
-
- File overlayDrawableHdpiNewAlternate = new File(overlayDrawableHdpi, "new_alternate.png");
- overlaySet.updateWith(overlayBase, overlayDrawableHdpiNewAlternate, FileStatus.NEW, logger);
- checkLogger(logger);
-
- // validate for duplicates
- resourceMerger.validateDataSets();
-
- // check the content.
- ListMultimap<String, ResourceItem> mergedMap = resourceMerger.getDataMap();
-
- // check unchanged file is WRITTEN
- List<ResourceItem> drawableUntouched = mergedMap.get("drawable/untouched");
- assertEquals(1, drawableUntouched.size());
- assertTrue(drawableUntouched.get(0).isWritten());
- assertFalse(drawableUntouched.get(0).isTouched());
- assertFalse(drawableUntouched.get(0).isRemoved());
-
- // check replaced file is TOUCHED
- List<ResourceItem> drawableTouched = mergedMap.get("drawable/touched");
- assertEquals(1, drawableTouched.size());
- assertTrue(drawableTouched.get(0).isWritten());
- assertTrue(drawableTouched.get(0).isTouched());
- assertFalse(drawableTouched.get(0).isRemoved());
-
- // check removed file is REMOVED
- List<ResourceItem> drawableRemoved = mergedMap.get("drawable/removed");
- assertEquals(1, drawableRemoved.size());
- assertTrue(drawableRemoved.get(0).isWritten());
- assertTrue(drawableRemoved.get(0).isRemoved());
-
- // check new overlay: two objects, last one is TOUCHED
- List<ResourceItem> drawableNewOverlay = mergedMap.get("drawable/new_overlay");
- assertEquals(2, drawableNewOverlay.size());
- ResourceItem newOverlay = drawableNewOverlay.get(1);
- assertEquals(overlayDrawableNewOverlay, newOverlay.getSource().getFile());
- assertFalse(newOverlay.isWritten());
- assertTrue(newOverlay.isTouched());
-
- // check new alternate: one objects, last one is TOUCHED
- List<ResourceItem> drawableHdpiNewAlternate = mergedMap.get("drawable-hdpi/new_alternate");
- assertEquals(1, drawableHdpiNewAlternate.size());
- ResourceItem newAlternate = drawableHdpiNewAlternate.get(0);
- assertEquals(overlayDrawableHdpiNewAlternate, newAlternate.getSource().getFile());
- assertFalse(newAlternate.isWritten());
- assertTrue(newAlternate.isTouched());
-
- // write and check the result of writeResourceFolder
- // copy the current resOut which serves as pre incremental update state.
- File resFolder = getFolderCopy(new File(root, "resOut"));
-
- // write the content of the resource merger.
- resourceMerger.writeDataFolder(resFolder, null /*aaptRunner*/);
-
- // Check the content.
- checkImageColor(new File(resFolder, "drawable" + File.separator + "touched.png"),
- (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "drawable" + File.separator + "untouched.png"),
- (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "drawable" + File.separator + "new_overlay.png"),
- (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "drawable" + File.separator + "removed_overlay.png"),
- (int) 0xFF00FF00);
- checkImageColor(new File(resFolder, "drawable-hdpi" + File.separator + "new_alternate.png"),
- (int) 0xFF00FF00);
- assertFalse(new File(resFolder, "drawable-ldpi" + File.separator + "removed.png").isFile());
- }
-
- public void testUpdateWithBasicValues() throws Exception {
- File root = getIncMergeRoot("basicValues");
- File fakeRoot = getMergedBlobFolder(root);
- ResourceMerger resourceMerger = new ResourceMerger();
- resourceMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(resourceMerger);
-
- List<ResourceSet> sets = resourceMerger.getDataSets();
- assertEquals(2, sets.size());
-
- RecordingLogger logger = new RecordingLogger();
-
- // ----------------
- // first set is the main one, no change here
- ResourceSet mainSet = sets.get(0);
- File mainBase = new File(root, "main");
- File mainValues = new File(mainBase, "values");
- File mainValuesEn = new File(mainBase, "values-en");
-
- // touched file:
- File mainValuesTouched = new File(mainValues, "values.xml");
- mainSet.updateWith(mainBase, mainValuesTouched, FileStatus.CHANGED, logger);
- checkLogger(logger);
-
-
- // removed files
- File mainValuesEnRemoved = new File(mainValuesEn, "values.xml");
- mainSet.updateWith(mainBase, mainValuesEnRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
-
- // ----------------
- // second set is the overlay one
- ResourceSet overlaySet = sets.get(1);
- File overlayBase = new File(root, "overlay");
- File overlayValues = new File(overlayBase, "values");
- File overlayValuesFr = new File(overlayBase, "values-fr");
-
- // new files:
- File overlayValuesNew = new File(overlayValues, "values.xml");
- overlaySet.updateWith(overlayBase, overlayValuesNew, FileStatus.NEW, logger);
- checkLogger(logger);
-
- File overlayValuesFrNew = new File(overlayValuesFr, "values.xml");
- overlaySet.updateWith(overlayBase, overlayValuesFrNew, FileStatus.NEW, logger);
- checkLogger(logger);
-
- // validate for duplicates
- resourceMerger.validateDataSets();
-
- // check the content.
- ListMultimap<String, ResourceItem> mergedMap = resourceMerger.getDataMap();
-
- // check unchanged string is WRITTEN
- List<ResourceItem> valuesUntouched = mergedMap.get("string/untouched");
- assertEquals(1, valuesUntouched.size());
- assertTrue(valuesUntouched.get(0).isWritten());
- assertFalse(valuesUntouched.get(0).isTouched());
- assertFalse(valuesUntouched.get(0).isRemoved());
-
- // check replaced file is TOUCHED
- List<ResourceItem> valuesTouched = mergedMap.get("string/touched");
- assertEquals(1, valuesTouched.size());
- assertTrue(valuesTouched.get(0).isWritten());
- assertTrue(valuesTouched.get(0).isTouched());
- assertFalse(valuesTouched.get(0).isRemoved());
-
- // check removed file is REMOVED
- List<ResourceItem> valuesRemoved = mergedMap.get("string/removed");
- assertEquals(1, valuesRemoved.size());
- assertTrue(valuesRemoved.get(0).isWritten());
- assertTrue(valuesRemoved.get(0).isRemoved());
-
- valuesRemoved = mergedMap.get("string-en/removed");
- assertEquals(1, valuesRemoved.size());
- assertTrue(valuesRemoved.get(0).isWritten());
- assertTrue(valuesRemoved.get(0).isRemoved());
-
- // check new overlay: two objects, last one is TOUCHED
- List<ResourceItem> valuesNewOverlay = mergedMap.get("string/new_overlay");
- assertEquals(2, valuesNewOverlay.size());
- ResourceItem newOverlay = valuesNewOverlay.get(1);
- assertFalse(newOverlay.isWritten());
- assertTrue(newOverlay.isTouched());
-
- // check new alternate: one objects, last one is TOUCHED
- List<ResourceItem> valuesFrNewAlternate = mergedMap.get("string-fr/new_alternate");
- assertEquals(1, valuesFrNewAlternate.size());
- ResourceItem newAlternate = valuesFrNewAlternate.get(0);
- assertFalse(newAlternate.isWritten());
- assertTrue(newAlternate.isTouched());
-
- // write and check the result of writeResourceFolder
- // copy the current resOut which serves as pre incremental update state.
- File resFolder = getFolderCopy(new File(root, "resOut"));
-
- // write the content of the resource merger.
- resourceMerger.writeDataFolder(resFolder, null /*aaptRunner*/);
-
- // Check the content.
- // values/values.xml
- Map<String, String> map = quickStringOnlyValueFileParser(
- new File(resFolder, "values" + File.separator + "values.xml"));
- assertEquals("untouched", map.get("untouched"));
- assertEquals("touched", map.get("touched"));
- assertEquals("new_overlay", map.get("new_overlay"));
-
- // values/values-fr.xml
- map = quickStringOnlyValueFileParser(
- new File(resFolder, "values-fr" + File.separator + "values.xml"));
- assertEquals("new_alternate", map.get("new_alternate"));
-
- // deleted values-en/values.xml
- assertFalse(new File(resFolder, "values-en" + File.separator + "values.xml").isFile());
- }
-
- public void testUpdateWithBasicValues2() throws Exception {
- File root = getIncMergeRoot("basicValues2");
- File fakeRoot = getMergedBlobFolder(root);
- ResourceMerger resourceMerger = new ResourceMerger();
- resourceMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(resourceMerger);
-
- List<ResourceSet> sets = resourceMerger.getDataSets();
- assertEquals(2, sets.size());
-
- RecordingLogger logger = new RecordingLogger();
-
- // ----------------
- // first set is the main one, no change here
-
- // ----------------
- // second set is the overlay one
- ResourceSet overlaySet = sets.get(1);
- File overlayBase = new File(root, "overlay");
- File overlayValues = new File(overlayBase, "values");
-
- // new files:
- File overlayValuesNew = new File(overlayValues, "values.xml");
- overlaySet.updateWith(overlayBase, overlayValuesNew, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
-
- // validate for duplicates
- resourceMerger.validateDataSets();
-
- // check the content.
- ListMultimap<String, ResourceItem> mergedMap = resourceMerger.getDataMap();
-
- // check unchanged string is WRITTEN
- List<ResourceItem> valuesUntouched = mergedMap.get("string/untouched");
- assertEquals(1, valuesUntouched.size());
- assertTrue(valuesUntouched.get(0).isWritten());
- assertFalse(valuesUntouched.get(0).isTouched());
- assertFalse(valuesUntouched.get(0).isRemoved());
-
- // check removed_overlay is present twice.
- List<ResourceItem> valuesRemovedOverlay = mergedMap.get("string/removed_overlay");
- assertEquals(2, valuesRemovedOverlay.size());
- // first is untouched
- assertFalse(valuesRemovedOverlay.get(0).isWritten());
- assertFalse(valuesRemovedOverlay.get(0).isTouched());
- assertFalse(valuesRemovedOverlay.get(0).isRemoved());
- // other is removed
- assertTrue(valuesRemovedOverlay.get(1).isWritten());
- assertFalse(valuesRemovedOverlay.get(1).isTouched());
- assertTrue(valuesRemovedOverlay.get(1).isRemoved());
-
- // write and check the result of writeResourceFolder
- // copy the current resOut which serves as pre incremental update state.
- File resFolder = getFolderCopy(new File(root, "resOut"));
-
- // write the content of the resource merger.
- resourceMerger.writeDataFolder(resFolder, null /*aaptRunner*/);
-
- // Check the content.
- // values/values.xml
- Map<String, String> map = quickStringOnlyValueFileParser(
- new File(resFolder, "values" + File.separator + "values.xml"));
- assertEquals("untouched", map.get("untouched"));
- assertEquals("untouched", map.get("removed_overlay"));
- }
-
- public void testUpdateWithFilesVsValues() throws Exception {
- File root = getIncMergeRoot("filesVsValues");
- File fakeRoot = getMergedBlobFolder(root);
- ResourceMerger resourceMerger = new ResourceMerger();
- resourceMerger.loadFromBlob(fakeRoot);
- checkSourceFolders(resourceMerger);
-
- List<ResourceSet> sets = resourceMerger.getDataSets();
- assertEquals(1, sets.size());
-
- RecordingLogger logger = new RecordingLogger();
-
- // ----------------
- // Load the main set
- ResourceSet mainSet = sets.get(0);
- File mainBase = new File(root, "main");
- File mainValues = new File(mainBase, ResourceFolderType.VALUES.getName());
- File mainLayout = new File(mainBase, ResourceFolderType.LAYOUT.getName());
-
- // touched file:
- File mainValuesTouched = new File(mainValues, "values.xml");
- mainSet.updateWith(mainBase, mainValuesTouched, FileStatus.CHANGED, logger);
- checkLogger(logger);
-
- // new file:
- File mainLayoutNew = new File(mainLayout, "alias_replaced_by_file.xml");
- mainSet.updateWith(mainBase, mainLayoutNew, FileStatus.NEW, logger);
- checkLogger(logger);
-
- // removed file
- File mainLayoutRemoved = new File(mainLayout, "file_replaced_by_alias.xml");
- mainSet.updateWith(mainBase, mainLayoutRemoved, FileStatus.REMOVED, logger);
- checkLogger(logger);
-
- // validate for duplicates
- resourceMerger.validateDataSets();
-
- // check the content.
- ListMultimap<String, ResourceItem> mergedMap = resourceMerger.getDataMap();
-
- // check layout/main is unchanged
- List<ResourceItem> layoutMain = mergedMap.get("layout/main");
- assertEquals(1, layoutMain.size());
- assertTrue(layoutMain.get(0).isWritten());
- assertFalse(layoutMain.get(0).isTouched());
- assertFalse(layoutMain.get(0).isRemoved());
-
- // check file_replaced_by_alias has 2 version, 2nd is TOUCHED, and contains a Node
- List<ResourceItem> layoutReplacedByAlias = mergedMap.get("layout/file_replaced_by_alias");
- assertEquals(2, layoutReplacedByAlias.size());
- // 1st one is removed version, as it already existed in the item multimap
- ResourceItem replacedByAlias = layoutReplacedByAlias.get(0);
- assertTrue(replacedByAlias.isWritten());
- assertFalse(replacedByAlias.isTouched());
- assertTrue(replacedByAlias.isRemoved());
- assertNull(replacedByAlias.getValue());
- assertEquals("file_replaced_by_alias.xml", replacedByAlias.getSource().getFile().getName());
- // 2nd version is the new one
- replacedByAlias = layoutReplacedByAlias.get(1);
- assertFalse(replacedByAlias.isWritten());
- assertTrue(replacedByAlias.isTouched());
- assertFalse(replacedByAlias.isRemoved());
- assertNotNull(replacedByAlias.getValue());
- assertEquals("values.xml", replacedByAlias.getSource().getFile().getName());
-
- // check alias_replaced_by_file has 2 version, 2nd is TOUCHED, and contains a Node
- List<ResourceItem> layoutReplacedByFile = mergedMap.get("layout/alias_replaced_by_file");
- // 1st one is removed version, as it already existed in the item multimap
- assertEquals(2, layoutReplacedByFile.size());
- ResourceItem replacedByFile = layoutReplacedByFile.get(0);
- assertTrue(replacedByFile.isWritten());
- assertFalse(replacedByFile.isTouched());
- assertTrue(replacedByFile.isRemoved());
- assertNotNull(replacedByFile.getValue());
- assertEquals("values.xml", replacedByFile.getSource().getFile().getName());
- // 2nd version is the new one
- replacedByFile = layoutReplacedByFile.get(1);
- assertFalse(replacedByFile.isWritten());
- assertTrue(replacedByFile.isTouched());
- assertFalse(replacedByFile.isRemoved());
- assertNull(replacedByFile.getValue());
- assertEquals("alias_replaced_by_file.xml", replacedByFile.getSource().getFile().getName());
-
- // write and check the result of writeResourceFolder
- // copy the current resOut which serves as pre incremental update state.
- File resFolder = getFolderCopy(new File(root, "resOut"));
-
- // write the content of the resource merger.
- resourceMerger.writeDataFolder(resFolder, null /*aaptRunner*/);
-
- // deleted layout/file_replaced_by_alias.xml
- assertFalse(new File(resFolder, "layout" + File.separator + "file_replaced_by_alias.xml")
- .isFile());
- // new file layout/alias_replaced_by_file.xml
- assertTrue(new File(resFolder, "layout" + File.separator + "alias_replaced_by_file.xml")
- .isFile());
-
- // quick load of the values file
- File valuesFile = new File(resFolder, "values" + File.separator + "values.xml");
- assertTrue(valuesFile.isFile());
- String content = Files.toString(valuesFile, Charsets.UTF_8);
- assertTrue(content.contains("name=\"file_replaced_by_alias\""));
- assertFalse(content.contains("name=\"alias_replaced_by_file\""));
- }
-
- public void testCheckValidUpdate() throws Exception {
- // first merger
- ResourceMerger merger1 = createMerger(new String[][] {
- new String[] { "main", ("/main/res1"), ("/main/res2") },
- new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") },
- });
-
- // 2nd merger with different order source files in sets.
- ResourceMerger merger2 = createMerger(new String[][] {
- new String[] { "main", ("/main/res2"), ("/main/res1") },
- new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") },
- });
-
- assertTrue(merger1.checkValidUpdate(merger2.getDataSets()));
-
- // write merger1 on disk to test writing empty ResourceSets.
- File folder = Files.createTempDir();
- merger1.writeBlobTo(folder);
-
- // reload it
- ResourceMerger loadedMerger = new ResourceMerger();
- loadedMerger.loadFromBlob(folder);
-
- String expected = merger1.toString();
- String actual = loadedMerger.toString();
- if (SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_WINDOWS) {
- expected = expected.replaceAll(Pattern.quote(File.separator), "/").
- replaceAll("[A-Z]:/", "/");
- actual = actual.replaceAll(Pattern.quote(File.separator), "/").
- replaceAll("[A-Z]:/", "/");
- assertEquals("Actual: " + actual + "\nExpected: " + expected, expected, actual);
- } else {
- assertTrue("Actual: " + actual + "\nExpected: " + expected,
- loadedMerger.checkValidUpdate(merger1.getDataSets()));
- }
- }
-
- public void testUpdateWithRemovedOverlay() throws Exception {
- // Test with removed overlay
- ResourceMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay", "/overlay/res1", "/overlay/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- ResourceMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithReplacedOverlays() throws Exception {
- // Test with different overlays
- ResourceMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay", "/overlay/res1", "/overlay/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- ResourceMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithReorderedOverlays() throws Exception {
- // Test with different overlays
- ResourceMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- new String[] { "overlay1", "/overlay1/res1", "/overlay1/res2" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- ResourceMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res2", "/main/res1" },
- new String[] { "overlay2", "/overlay2/res1", "/overlay2/res2" },
- new String[] { "overlay1", "/overlay1/res1", "/overlay1/res2" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- public void testUpdateWithRemovedSourceFile() throws Exception {
- // Test with different source files
- ResourceMerger merger1 = createMerger(new String[][] {
- new String[] { "main", "/main/res1", "/main/res2" },
- });
-
- // 2nd merger with different order source files in sets.
- ResourceMerger merger2 = createMerger(new String[][] {
- new String[] { "main", "/main/res1" },
- });
-
- assertFalse(merger1.checkValidUpdate(merger2.getDataSets()));
- }
-
- /**
- * Creates a fake merge with given sets.
- *
- * the data is an array of sets.
- *
- * Each set is [ setName, folder1, folder2, ...]
- *
- * @param data
- * @return
- */
- private static ResourceMerger createMerger(String[][] data) {
- ResourceMerger merger = new ResourceMerger();
- for (String[] setData : data) {
- ResourceSet set = new ResourceSet(setData[0]);
- merger.addDataSet(set);
- for (int i = 1, n = setData.length; i < n; i++) {
- set.addSource(new File(setData[i]));
- }
- }
-
- return merger;
- }
-
- private static ResourceMerger getResourceMerger()
- throws DuplicateDataException, IOException {
- if (sResourceMerger == null) {
- File root = TestUtils.getRoot("resources", "baseMerge");
-
- ResourceSet res = ResourceSetTest.getBaseResourceSet();
-
- RecordingLogger logger = new RecordingLogger();
-
- ResourceSet overlay = new ResourceSet("overlay");
- overlay.addSource(new File(root, "overlay"));
- overlay.loadFromFiles(logger);
-
- checkLogger(logger);
-
- sResourceMerger = new ResourceMerger();
- sResourceMerger.addDataSet(res);
- sResourceMerger.addDataSet(overlay);
- }
-
- return sResourceMerger;
- }
-
- private static File getWrittenResources() throws DuplicateDataException, IOException,
- ExecutionException, InterruptedException {
- ResourceMerger resourceMerger = getResourceMerger();
-
- File folder = Files.createTempDir();
-
- resourceMerger.writeDataFolder(folder, null /*aaptRunner*/);
-
- return folder;
- }
-
- private File getIncMergeRoot(String name) throws IOException {
- File root = TestUtils.getCanonicalRoot("resources", "incMergeData");
- return new File(root, name);
- }
-
- private static File getFolderCopy(File folder) throws IOException {
- File dest = Files.createTempDir();
- copyFolder(folder, dest);
- return dest;
- }
-
- private static void copyFolder(File from, File to) throws IOException {
- if (from.isFile()) {
- Files.copy(from, to);
- } else if (from.isDirectory()) {
- if (!to.exists()) {
- to.mkdirs();
- }
-
- File[] children = from.listFiles();
- if (children != null) {
- for (File f : children) {
- copyFolder(f, new File(to, f.getName()));
- }
- }
- }
- }
-
- private static Map<String, String> quickStringOnlyValueFileParser(File file)
- throws IOException {
- Map<String, String> result = Maps.newHashMap();
-
- Document document = ValueResourceParser.parseDocument(file);
-
- // get the root node
- Node rootNode = document.getDocumentElement();
- if (rootNode == null) {
- return Collections.emptyMap();
- }
-
- NodeList nodes = rootNode.getChildNodes();
-
- for (int i = 0, n = nodes.getLength(); i < n; i++) {
- Node node = nodes.item(i);
-
- if (node.getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
-
- ResourceType type = ValueResourceParser.getType(node);
- if (type != ResourceType.STRING) {
- throw new IllegalArgumentException("Only String resources supported.");
- }
- String name = ValueResourceParser.getName(node);
-
- String value = null;
-
- NodeList nodeList = node.getChildNodes();
- nodeLoop: for (int ii = 0, nn = nodes.getLength(); ii < nn; ii++) {
- Node subNode = nodeList.item(ii);
-
- switch (subNode.getNodeType()) {
- case Node.COMMENT_NODE:
- break;
- case Node.TEXT_NODE:
- value = subNode.getNodeValue().trim(); // TODO: remove trim.
- break nodeLoop;
- case Node.ELEMENT_NODE:
- break;
- }
- }
-
- result.put(name, value != null ? value : "");
- }
-
- return result;
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/ResourceSetTest.java b/builder/src/test/java/com/android/builder/resources/ResourceSetTest.java
deleted file mode 100644
index ad5ced0..0000000
--- a/builder/src/test/java/com/android/builder/resources/ResourceSetTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.builder.TestUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-public class ResourceSetTest extends BaseTestCase {
-
- private static ResourceSet sBaseResourceSet = null;
-
- public void testBaseResourceSetByCount() throws Exception {
- ResourceSet resourceSet = getBaseResourceSet();
- assertEquals(23, resourceSet.size());
- }
-
- public void testBaseResourceSetByName() throws Exception {
- ResourceSet resourceSet = getBaseResourceSet();
-
- verifyResourceExists(resourceSet,
- "drawable/icon",
- "drawable/patch",
- "raw/foo",
- "layout/main",
- "layout/layout_ref",
- "layout/alias_replaced_by_file",
- "layout/file_replaced_by_alias",
- "drawable/color_drawable",
- "drawable/drawable_ref",
- "color/color",
- "string/basic_string",
- "string/xliff_string",
- "string/styled_string",
- "style/style",
- "array/string_array",
- "attr/dimen_attr",
- "attr/string_attr",
- "attr/enum_attr",
- "attr/flag_attr",
- "declare-styleable/declare_styleable",
- "dimen/dimen",
- "id/item_id",
- "integer/integer"
- );
- }
-
- public void testDupResourceSet() throws Exception {
- File root = TestUtils.getRoot("resources", "dupSet");
-
- ResourceSet set = new ResourceSet("main");
- set.addSource(new File(root, "res1"));
- set.addSource(new File(root, "res2"));
- boolean gotException = false;
- RecordingLogger logger = new RecordingLogger();
- try {
- set.loadFromFiles(logger);
- } catch (DuplicateDataException e) {
- gotException = true;
- }
-
- checkLogger(logger);
- assertTrue(gotException);
- }
-
- public void testBrokenSet() throws Exception {
- File root = TestUtils.getRoot("resources", "brokenSet");
-
- ResourceSet set = new ResourceSet("main");
- set.addSource(root);
-
- boolean gotException = false;
- RecordingLogger logger = new RecordingLogger();
- try {
- set.loadFromFiles(logger);
- } catch (IOException e) {
- gotException = true;
- }
-
- assertTrue(gotException);
- assertFalse(logger.getErrorMsgs().isEmpty());
- }
-
- static ResourceSet getBaseResourceSet() throws DuplicateDataException, IOException {
- if (sBaseResourceSet == null) {
- File root = TestUtils.getRoot("resources", "baseSet");
-
- sBaseResourceSet = new ResourceSet("main");
- sBaseResourceSet.addSource(root);
- RecordingLogger logger = new RecordingLogger();
- sBaseResourceSet.loadFromFiles(logger);
-
- checkLogger(logger);
- }
-
- return sBaseResourceSet;
- }
-}
diff --git a/builder/src/test/java/com/android/builder/resources/ValueResourceParserTest.java b/builder/src/test/java/com/android/builder/resources/ValueResourceParserTest.java
deleted file mode 100644
index ed87857..0000000
--- a/builder/src/test/java/com/android/builder/resources/ValueResourceParserTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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 com.android.builder.resources;
-
-import com.android.builder.TestUtils;
-import com.google.common.collect.Maps;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-/**
- */
-public class ValueResourceParserTest extends BaseTestCase {
-
- private static List<ResourceItem> sResources = null;
-
- public void testParsedResourcesByCount() throws Exception {
- List<ResourceItem> resources = getParsedResources();
-
- assertEquals(18, resources.size());
- }
-
- public void testParsedResourcesByName() throws Exception {
- List<ResourceItem> resources = getParsedResources();
- Map<String, ResourceItem> resourceMap = Maps.newHashMapWithExpectedSize(resources.size());
- for (ResourceItem item : resources) {
- resourceMap.put(item.getKey(), item);
- }
-
- String[] resourceNames = new String[] {
- "drawable/color_drawable",
- "drawable/drawable_ref",
- "color/color",
- "string/basic_string",
- "string/xliff_string",
- "string/styled_string",
- "style/style",
- "array/string_array",
- "attr/dimen_attr",
- "attr/string_attr",
- "attr/enum_attr",
- "attr/flag_attr",
- "declare-styleable/declare_styleable",
- "dimen/dimen",
- "id/item_id",
- "integer/integer",
- "layout/layout_ref"
- };
-
- for (String name : resourceNames) {
- assertNotNull(name, resourceMap.get(name));
- }
- }
-
- private static List<ResourceItem> getParsedResources() throws IOException {
- if (sResources == null) {
- File root = TestUtils.getRoot("resources", "baseSet");
- File values = new File(root, "values");
- File valuesXml = new File(values, "values.xml");
-
- ValueResourceParser parser = new ValueResourceParser(valuesXml);
- sResources = parser.parseFile();
-
- // create a fake resource file to allow calling ResourceItem.getKey()
- new ResourceFile(valuesXml, sResources, "");
- }
-
- return sResources;
- }
-}
diff --git a/builder/src/test/resources/testData/assets/baseMerge/merger.xml b/builder/src/test/resources/testData/assets/baseMerge/merger.xml
deleted file mode 100644
index dca3713..0000000
--- a/builder/src/test/resources/testData/assets/baseMerge/merger.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
- <dataSet config="main">
- <source path="$TOP$$SEP$..$SEP$baseSet">
- <file name="foo/icon.png" path="$TOP$$SEP$..$SEP$baseSet$SEP$foo$SEP$icon.png" />
- <file name="main.xml" path="$TOP$$SEP$..$SEP$baseSet$SEP$main.xml" />
- <file name="foo/foo.dat" path="$TOP$$SEP$..$SEP$baseSet$SEP$foo$SEP$foo.dat" />
- <file name="value.xml" path="$TOP$$SEP$..$SEP$baseSet$SEP$value.xml" />
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay">
- <file name="icon2.png" path="$TOP$$SEP$overlay$SEP$icon2.png" />
- <file name="foo/icon.png" path="$TOP$$SEP$overlay$SEP$foo$SEP$icon.png" />
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/assets/baseMerge/overlay/foo/icon.png b/builder/src/test/resources/testData/assets/baseMerge/overlay/foo/icon.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/baseMerge/overlay/foo/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/baseMerge/overlay/icon2.png b/builder/src/test/resources/testData/assets/baseMerge/overlay/icon2.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/assets/baseMerge/overlay/icon2.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/baseSet/foo/foo.dat b/builder/src/test/resources/testData/assets/baseSet/foo/foo.dat
deleted file mode 100644
index def08db..0000000
--- a/builder/src/test/resources/testData/assets/baseSet/foo/foo.dat
+++ /dev/null
@@ -1 +0,0 @@
-Foo! \ No newline at end of file
diff --git a/builder/src/test/resources/testData/assets/baseSet/foo/icon.png b/builder/src/test/resources/testData/assets/baseSet/foo/icon.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/baseSet/foo/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/baseSet/main.xml b/builder/src/test/resources/testData/assets/baseSet/main.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/assets/baseSet/main.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/assets/baseSet/values.xml b/builder/src/test/resources/testData/assets/baseSet/values.xml
deleted file mode 100644
index 0da935f..0000000
--- a/builder/src/test/resources/testData/assets/baseSet/values.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Some comment to throw off the XML parser if it doesn't properly handle
- * Document.getDocumentElement().
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
- <drawable name="color_drawable">#ffffffff</drawable>
- <drawable name="drawable_ref">@drawable/stat_notify_sync_anim0</drawable>
- <color name="color">#00000000</color>
-
- <string name="basic_string">basic_string</string>
- <string name="xliff_string"><xliff:g id="number" example="123">%1$s</xliff:g><xliff:g id="unit" example="KB">%2$s</xliff:g></string>
- <string name="styled_string">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>
-
- <style name="style">
- <item name="android:singleLine">true</item>
- <item name="android:textAppearance">@style/TextAppearance.WindowTitle</item>
- <item name="android:shadowColor">#BB000000</item>
- <item name="android:shadowRadius">2.75</item>
- </style>
-
- <!-- list of 3- or 4-letter mnemonics for a 10-key numeric keypad -->
- <string-array translatable="false" name="string_array">
- <item></item><!-- 0 -->
- <item></item><!-- 1 -->
- <item>ABC</item><!-- 2 -->
- <item>DEF</item><!-- 3 -->
- <item>GHI</item><!-- 4 -->
- <item>JKL</item><!-- 5 -->
- <item>MNO</item><!-- 6 -->
- <item>PQRS</item><!-- 7 -->
- <item>TUV</item><!-- 8 -->
- <item>WXYZ</item><!-- 9 -->
- </string-array>
-
- <attr name="dimen_attr" format="dimension" />
-
- <!-- Default font family. -->
- <attr name="string_attr" format="string" />
-
- <!-- Default text typeface. -->
- <attr name="enum_attr">
- <enum name="normal" value="0" />
- <enum name="sans" value="1" />
- <enum name="serif" value="2" />
- <enum name="monospace" value="3" />
- </attr>
-
- <!-- Default text typeface style. -->
- <attr name="flag_attr">
- <flag name="normal" value="0" />
- <flag name="bold" value="1" />
- <flag name="italic" value="2" />
- </attr>
-
- <!-- These are the standard attributes that make up a complete theme. -->
- <declare-styleable name="declare_styleable">
- <!-- ============== -->
- <!-- Generic styles -->
- <!-- ============== -->
- <eat-comment />
-
- <!-- Default color of foreground imagery. -->
- <attr name="blah" format="color" />
- <!-- Default color of foreground imagery on an inverted background. -->
- <attr name="android:colorForegroundInverse" />
- </declare-styleable>
-
- <!-- The width that is used when creating thumbnails of applications. -->
- <dimen name="dimen">164dp</dimen>
-
- <item type="id" name="item_id" />
-
- <integer name="integer">75</integer>
-
- <item type="layout" name="layout_ref">@layout/ref</item>
- <item type="layout" name="alias_replaced_by_file">@layout/ref</item>
-
-</resources>
diff --git a/builder/src/test/resources/testData/assets/dupSet/assets1/icon.png b/builder/src/test/resources/testData/assets/dupSet/assets1/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/assets/dupSet/assets1/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/dupSet/assets2/icon.png b/builder/src/test/resources/testData/assets/dupSet/assets2/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/assets/dupSet/assets2/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/foo/overlay_added.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/foo/overlay_added.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/foo/overlay_added.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/overlay_removed.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/overlay_removed.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/overlay_removed.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/removed.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/removed.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/removed.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/touched.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/touched.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/touched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/untouched.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/untouched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/assetOut/untouched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/added.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/added.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/added.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/foo/overlay_added.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/foo/overlay_added.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/foo/overlay_added.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/overlay_removed.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/overlay_removed.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/overlay_removed.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/touched.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/touched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/touched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/untouched.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/untouched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/main/untouched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/merger.xml b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/merger.xml
deleted file mode 100644
index 8edb8b3..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/merger.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger>
- <dataSet config="main">
- <source path="$TOP$$SEP$main">
- <file name="untouched.png" path="$TOP$$SEP$main$SEP$untouched.png" />
- <file name="touched.png" path="$TOP$$SEP$main$SEP$touched.png" />
- <file name="removed.png" path="$TOP$$SEP$main$SEP$removed.png" />
- <file name="overlay_removed.png" path="$TOP$$SEP$main$SEP$overlay_removed.png" />
- <file name="foo/overlay_added.png" path="$TOP$$SEP$main$SEP$foo$SEP$overlay_added.png" />
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay">
- <file name="overlay_removed.png" path="$TOP$$SEP$overlay$SEP$overlay_removed.png" />
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/overlay/foo/overlay_added.png b/builder/src/test/resources/testData/assets/incMergeData/basicFiles/overlay/foo/overlay_added.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/assets/incMergeData/basicFiles/overlay/foo/overlay_added.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/baseMerge/merger.xml b/builder/src/test/resources/testData/resources/baseMerge/merger.xml
deleted file mode 100644
index ca547b8..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/merger.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
- <dataSet config="main">
- <source path="$TOP$$SEP$..$SEP$baseSet">
- <file name="icon" path="$TOP$$SEP$..$SEP$baseSet$SEP$drawable$SEP$icon.png" qualifiers="" type="drawable"/>
- <file name="patch" path="$TOP$$SEP$..$SEP$baseSet$SEP$drawable$SEP$patch.9.png" qualifiers="" type="drawable"/>
- <file name="file_replaced_by_alias" path="$TOP$$SEP$..$SEP$baseSet$SEP$layout$SEP$file_replaced_by_alias.xml" qualifiers="" type="layout"/>
- <file name="main" path="$TOP$$SEP$..$SEP$baseSet$SEP$layout$SEP$main.xml" qualifiers="" type="layout"/>
- <file name="foo" path="$TOP$$SEP$..$SEP$baseSet$SEP$raw$SEP$foo.dat" qualifiers="" type="raw"/>
- <file path="$TOP$$SEP$..$SEP$baseSet$SEP$values$SEP$values.xml" qualifiers="">
- <dimen name="dimen">164dp</dimen>
- <integer name="integer">75</integer>
- <color name="color">#00000000</color>
- <drawable name="color_drawable">#ffffffff</drawable>
- <declare-styleable name="declare_styleable">
-
- <!-- ============== -->
- <!-- Generic styles -->
- <!-- ============== -->
- <eat-comment/>
-
- <!-- Default color of foreground imagery. -->
- <attr format="color" name="blah"/>
-
- <!-- Default color of foreground imagery on an inverted background. -->
- <attr name="android:colorForegroundInverse"/>
-
- </declare-styleable>
- <style name="style">
- <item name="android:singleLine">true</item>
- <item name="android:textAppearance">@style$SEP$TextAppearance.WindowTitle</item>
- <item name="android:shadowColor">#BB000000</item>
- <item name="android:shadowRadius">2.75</item>
- </style>
- <string name="styled_string">Forgot your username or password\?\nVisit<b>google.com$SEP$accounts$SEP$recovery</b>.</string>
- <attr format="dimension" name="dimen_attr"/>
- <string-array name="string_array" translatable="false">
- <item/>
- <!-- 0 -->
- <item/>
- <!-- 1 -->
- <item>ABC</item>
- <!-- 2 -->
- <item>DEF</item>
- <!-- 3 -->
- <item>GHI</item>
- <!-- 4 -->
- <item>JKL</item>
- <!-- 5 -->
- <item>MNO</item>
- <!-- 6 -->
- <item>PQRS</item>
- <!-- 7 -->
- <item>TUV</item>
- <!-- 8 -->
- <item>WXYZ</item>
- <!-- 9 -->
- </string-array>
- <item name="alias_replaced_by_file" type="layout">@layout$SEP$ref </item>
- <string name="basic_string">basic_string</string>
- <string name="xliff_string"><ns1:g example="123" id="number">%1$s</ns1:g><ns1:g example="KB" id="unit">%2$s</ns1:g></string>
- <attr name="enum_attr">
- <enum name="normal" value="0"/>
- <enum name="sans" value="1"/>
- <enum name="serif" value="2"/>
- <enum name="monospace" value="3"/>
- </attr>
- <item name="item_id" type="id"/>
- <item name="layout_ref" type="layout">@layout$SEP$ref</item>
- <drawable name="drawable_ref">@drawable$SEP$stat_notify_sync_anim0</drawable>
- <attr format="string" name="string_attr"/>
- <attr name="flag_attr">
- <flag name="normal" value="0"/>
- <flag name="bold" value="1"/>
- <flag name="italic" value="2"/>
- </attr>
- </file>
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay">
- <file name="icon2" path="$TOP$$SEP$overlay$SEP$drawable$SEP$icon2.png" qualifiers="" type="drawable"/>
- <file name="icon" path="$TOP$$SEP$overlay$SEP$drawable-ldpi$SEP$icon.png" qualifiers="ldpi" type="drawable"/>
- <file name="alias_replaced_by_file" path="$TOP$$SEP$overlay$SEP$layout$SEP$alias_replaced_by_file.xml" qualifiers="" type="layout"/>
- <file name="main" path="$TOP$$SEP$overlay$SEP$layout$SEP$main.xml" qualifiers="" type="layout"/>
- <file path="$TOP$$SEP$overlay$SEP$values$SEP$values.xml" qualifiers="">
- <color name="color">#FFFFFFFF</color>
- <item name="file_replaced_by_alias" type="layout">@layout$SEP$ref</item>
- <string name="basic_string">overlay_string</string>
- </file>
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable-ldpi/icon.png b/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable-ldpi/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable-ldpi/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable/icon2.png b/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable/icon2.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/overlay/drawable/icon2.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/alias_replaced_by_file.xml b/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/alias_replaced_by_file.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/alias_replaced_by_file.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/main.xml b/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/main.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/overlay/layout/main.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/baseMerge/overlay/values/values.xml b/builder/src/test/resources/testData/resources/baseMerge/overlay/values/values.xml
deleted file mode 100644
index a3c90cc..0000000
--- a/builder/src/test/resources/testData/resources/baseMerge/overlay/values/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <color name="color">#FFFFFFFF</color>
- <string name="basic_string">overlay_string</string>
- <item type="layout" name="file_replaced_by_alias">@layout/ref</item>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/baseSet/drawable/icon.png b/builder/src/test/resources/testData/resources/baseSet/drawable/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/drawable/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/baseSet/drawable/patch.9.png b/builder/src/test/resources/testData/resources/baseSet/drawable/patch.9.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/drawable/patch.9.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/baseSet/layout/file_replaced_by_alias.xml b/builder/src/test/resources/testData/resources/baseSet/layout/file_replaced_by_alias.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/layout/file_replaced_by_alias.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/baseSet/layout/main.xml b/builder/src/test/resources/testData/resources/baseSet/layout/main.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/layout/main.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/baseSet/raw/foo.dat b/builder/src/test/resources/testData/resources/baseSet/raw/foo.dat
deleted file mode 100644
index def08db..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/raw/foo.dat
+++ /dev/null
@@ -1 +0,0 @@
-Foo! \ No newline at end of file
diff --git a/builder/src/test/resources/testData/resources/baseSet/values/values.xml b/builder/src/test/resources/testData/resources/baseSet/values/values.xml
deleted file mode 100644
index 0da935f..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/values/values.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Some comment to throw off the XML parser if it doesn't properly handle
- * Document.getDocumentElement().
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
- <drawable name="color_drawable">#ffffffff</drawable>
- <drawable name="drawable_ref">@drawable/stat_notify_sync_anim0</drawable>
- <color name="color">#00000000</color>
-
- <string name="basic_string">basic_string</string>
- <string name="xliff_string"><xliff:g id="number" example="123">%1$s</xliff:g><xliff:g id="unit" example="KB">%2$s</xliff:g></string>
- <string name="styled_string">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>
-
- <style name="style">
- <item name="android:singleLine">true</item>
- <item name="android:textAppearance">@style/TextAppearance.WindowTitle</item>
- <item name="android:shadowColor">#BB000000</item>
- <item name="android:shadowRadius">2.75</item>
- </style>
-
- <!-- list of 3- or 4-letter mnemonics for a 10-key numeric keypad -->
- <string-array translatable="false" name="string_array">
- <item></item><!-- 0 -->
- <item></item><!-- 1 -->
- <item>ABC</item><!-- 2 -->
- <item>DEF</item><!-- 3 -->
- <item>GHI</item><!-- 4 -->
- <item>JKL</item><!-- 5 -->
- <item>MNO</item><!-- 6 -->
- <item>PQRS</item><!-- 7 -->
- <item>TUV</item><!-- 8 -->
- <item>WXYZ</item><!-- 9 -->
- </string-array>
-
- <attr name="dimen_attr" format="dimension" />
-
- <!-- Default font family. -->
- <attr name="string_attr" format="string" />
-
- <!-- Default text typeface. -->
- <attr name="enum_attr">
- <enum name="normal" value="0" />
- <enum name="sans" value="1" />
- <enum name="serif" value="2" />
- <enum name="monospace" value="3" />
- </attr>
-
- <!-- Default text typeface style. -->
- <attr name="flag_attr">
- <flag name="normal" value="0" />
- <flag name="bold" value="1" />
- <flag name="italic" value="2" />
- </attr>
-
- <!-- These are the standard attributes that make up a complete theme. -->
- <declare-styleable name="declare_styleable">
- <!-- ============== -->
- <!-- Generic styles -->
- <!-- ============== -->
- <eat-comment />
-
- <!-- Default color of foreground imagery. -->
- <attr name="blah" format="color" />
- <!-- Default color of foreground imagery on an inverted background. -->
- <attr name="android:colorForegroundInverse" />
- </declare-styleable>
-
- <!-- The width that is used when creating thumbnails of applications. -->
- <dimen name="dimen">164dp</dimen>
-
- <item type="id" name="item_id" />
-
- <integer name="integer">75</integer>
-
- <item type="layout" name="layout_ref">@layout/ref</item>
- <item type="layout" name="alias_replaced_by_file">@layout/ref</item>
-
-</resources>
diff --git a/builder/src/test/resources/testData/resources/baseSet/values/values.xml~ b/builder/src/test/resources/testData/resources/baseSet/values/values.xml~
deleted file mode 100644
index 0da935f..0000000
--- a/builder/src/test/resources/testData/resources/baseSet/values/values.xml~
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Some comment to throw off the XML parser if it doesn't properly handle
- * Document.getDocumentElement().
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
- <drawable name="color_drawable">#ffffffff</drawable>
- <drawable name="drawable_ref">@drawable/stat_notify_sync_anim0</drawable>
- <color name="color">#00000000</color>
-
- <string name="basic_string">basic_string</string>
- <string name="xliff_string"><xliff:g id="number" example="123">%1$s</xliff:g><xliff:g id="unit" example="KB">%2$s</xliff:g></string>
- <string name="styled_string">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>
-
- <style name="style">
- <item name="android:singleLine">true</item>
- <item name="android:textAppearance">@style/TextAppearance.WindowTitle</item>
- <item name="android:shadowColor">#BB000000</item>
- <item name="android:shadowRadius">2.75</item>
- </style>
-
- <!-- list of 3- or 4-letter mnemonics for a 10-key numeric keypad -->
- <string-array translatable="false" name="string_array">
- <item></item><!-- 0 -->
- <item></item><!-- 1 -->
- <item>ABC</item><!-- 2 -->
- <item>DEF</item><!-- 3 -->
- <item>GHI</item><!-- 4 -->
- <item>JKL</item><!-- 5 -->
- <item>MNO</item><!-- 6 -->
- <item>PQRS</item><!-- 7 -->
- <item>TUV</item><!-- 8 -->
- <item>WXYZ</item><!-- 9 -->
- </string-array>
-
- <attr name="dimen_attr" format="dimension" />
-
- <!-- Default font family. -->
- <attr name="string_attr" format="string" />
-
- <!-- Default text typeface. -->
- <attr name="enum_attr">
- <enum name="normal" value="0" />
- <enum name="sans" value="1" />
- <enum name="serif" value="2" />
- <enum name="monospace" value="3" />
- </attr>
-
- <!-- Default text typeface style. -->
- <attr name="flag_attr">
- <flag name="normal" value="0" />
- <flag name="bold" value="1" />
- <flag name="italic" value="2" />
- </attr>
-
- <!-- These are the standard attributes that make up a complete theme. -->
- <declare-styleable name="declare_styleable">
- <!-- ============== -->
- <!-- Generic styles -->
- <!-- ============== -->
- <eat-comment />
-
- <!-- Default color of foreground imagery. -->
- <attr name="blah" format="color" />
- <!-- Default color of foreground imagery on an inverted background. -->
- <attr name="android:colorForegroundInverse" />
- </declare-styleable>
-
- <!-- The width that is used when creating thumbnails of applications. -->
- <dimen name="dimen">164dp</dimen>
-
- <item type="id" name="item_id" />
-
- <integer name="integer">75</integer>
-
- <item type="layout" name="layout_ref">@layout/ref</item>
- <item type="layout" name="alias_replaced_by_file">@layout/ref</item>
-
-</resources>
diff --git a/builder/src/test/resources/testData/resources/brokenSet/layout/activity_main.xml b/builder/src/test/resources/testData/resources/brokenSet/layout/activity_main.xml
deleted file mode 100644
index efcbf18..0000000
--- a/builder/src/test/resources/testData/resources/brokenSet/layout/activity_main.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- android:paddingBottom="@dimen/activity_vertical_margin"
- tools:context=".MainActivity">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/hello_world" />
-
-</RelativeLayout>
diff --git a/builder/src/test/resources/testData/resources/brokenSet/values/dimens.xml b/builder/src/test/resources/testData/resources/brokenSet/values/dimens.xml
deleted file mode 100644
index 8b309cc..0000000
--- a/builder/src/test/resources/testData/resources/brokenSet/values/dimens.xml
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/dupSet/res1/drawable/icon.png b/builder/src/test/resources/testData/resources/dupSet/res1/drawable/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/dupSet/res1/drawable/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/dupSet/res2/drawable/icon.png b/builder/src/test/resources/testData/resources/dupSet/res2/drawable/icon.png
deleted file mode 100644
index a07c69f..0000000
--- a/builder/src/test/resources/testData/resources/dupSet/res2/drawable/icon.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/new_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/new_overlay.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/new_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/removed_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/removed_overlay.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/removed_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/touched.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/touched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/touched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/untouched.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/untouched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/main/drawable/untouched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/merger.xml b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/merger.xml
deleted file mode 100644
index e2e88cc..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/merger.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger>
- <dataSet config="main">
- <source path="$TOP$$SEP$main">
- <file name="untouched" path="$TOP$$SEP$main$SEP$drawable$SEP$untouched.png" qualifiers="" type="drawable"/>
- <file name="touched" path="$TOP$$SEP$main$SEP$drawable$SEP$touched.png" qualifiers="" type="drawable"/>
- <file name="new_overlay" path="$TOP$$SEP$main$SEP$drawable$SEP$new_overlay.png" qualifiers="" type="drawable"/>
- <file name="removed" path="$TOP$$SEP$main$SEP$drawable$SEP$removed.png" qualifiers="" type="drawable"/>
- <file name="removed" path="$TOP$$SEP$main$SEP$drawable-ldpi$SEP$removed.png" qualifiers="ldpi" type="drawable"/>
- <file name="removed_overlay" path="$TOP$$SEP$main$SEP$drawable$SEP$removed_overlay.png" qualifiers="" type="drawable"/>
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay">
- <file name="removed_overlay" path="$TOP$$SEP$overlay$SEP$drawable$SEP$removed_overlay.png" qualifiers="" type="drawable"/>
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/new_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/new_overlay.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/new_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable-hdpi/new_alternate.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable-hdpi/new_alternate.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable-hdpi/new_alternate.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable/new_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable/new_overlay.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/overlay/drawable/new_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable-ldpi/removed.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable-ldpi/removed.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable-ldpi/removed.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/new_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/new_overlay.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/new_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/removed_overlay.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/removed_overlay.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/removed_overlay.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/touched.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/touched.png
deleted file mode 100644
index b55e544..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/touched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/untouched.png b/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/untouched.png
deleted file mode 100644
index 47e1adf..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicFiles/resOut/drawable/untouched.png
+++ /dev/null
Binary files differ
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/main/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/main/values/values.xml
deleted file mode 100644
index 32c8031..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/main/values/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="untouched">untouched</string>
- <string name="touched">touched</string>
- <string name="new_overlay">old_overlay</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/merger.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/merger.xml
deleted file mode 100644
index 646c8a5..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/merger.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger>
- <dataSet config="main">
- <source path="$TOP$$SEP$main">
- <file path="$TOP$$SEP$main$SEP$values$SEP$values.xml" qualifiers="">
- <string name="untouched">untouched</string>
- <string name="touched">untouched</string>
- <string name="removed">removed</string>
- <string name="new_overlay">old_overlay</string>
- </file>
- <file path="$TOP$$SEP$main$SEP$values-en$SEP$values.xml" qualifiers="en">
- <string name="removed">removed</string>
- </file>
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay" />
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values-fr/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values-fr/values.xml
deleted file mode 100644
index dcfcbdd..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values-fr/values.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="new_alternate">new_alternate</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values/values.xml
deleted file mode 100644
index 78e296c..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/overlay/values/values.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="new_overlay">new_overlay</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values-en/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values-en/values.xml
deleted file mode 100644
index b6be59a..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values-en/values.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="removed">removed</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values/values.xml
deleted file mode 100644
index a3ccf6b..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues/resOut/values/values.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="untouched">untouched</string>
- <string name="touched">untouched</string>
- <string name="removed">removed</string>
- <string name="new_overlay">old_overlay</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/main/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues2/main/values/values.xml
deleted file mode 100644
index 7a0a153..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/main/values/values.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="untouched">untouched</string>
- <string name="removed_overlay">untouched</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/merger.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues2/merger.xml
deleted file mode 100644
index aa771aa..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/merger.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger>
- <dataSet config="main">
- <source path="$TOP$$SEP$main">
- <file path="$TOP$$SEP$main$SEP$values$SEP$values.xml" qualifiers="">
- <string name="untouched">untouched</string>
- <string name="removed_overlay">untouched</string>
- </file>
- </source>
- </dataSet>
- <dataSet config="overlay">
- <source path="$TOP$$SEP$overlay">
- <file path="$TOP$$SEP$overlay$SEP$values$SEP$values.xml" qualifiers="">
- <string name="removed_overlay">overlay</string>
- </file>
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/overlay/keepfolder.txt b/builder/src/test/resources/testData/resources/incMergeData/basicValues2/overlay/keepfolder.txt
deleted file mode 100644
index 09786ef..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/overlay/keepfolder.txt
+++ /dev/null
@@ -1 +0,0 @@
-To keep the folder around. \ No newline at end of file
diff --git a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/resOut/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/basicValues2/resOut/values/values.xml
deleted file mode 100644
index a0e41d1..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/basicValues2/resOut/values/values.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="untouched">untouched</string>
- <string name="removed_overlay">overlay</string>
-</resources>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/alias_replaced_by_file.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/alias_replaced_by_file.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/alias_replaced_by_file.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/main.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/main.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/layout/main.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/values/values.xml
deleted file mode 100644
index 028b828..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/main/values/values.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <item type="layout" name="file_replaced_by_alias">@layout/main</item>
-</resources>
-
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/merger.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/merger.xml
deleted file mode 100644
index e42e67a..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/merger.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger>
- <dataSet config="main">
- <source path="$TOP$$SEP$main">
- <file name="main" path="$TOP$$SEP$main$SEP$layout$SEP$main.xml" qualifiers="" type="layout"/>
- <file name="file_replaced_by_alias" path="$TOP$$SEP$main$SEP$layout$SEP$file_replaced_by_alias.xml" qualifiers="" type="layout"/>
- <file path="$TOP$$SEP$main$SEP$values$SEP$values.xml" qualifiers="">
- <item type="layout" name="alias_replaced_by_file">@layout/main</item>
- </file>
- </source>
- </dataSet>
-</merger>
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/file_replaced_by_alias.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/file_replaced_by_alias.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/file_replaced_by_alias.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/main.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/main.xml
deleted file mode 100644
index b199751..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/layout/main.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-<TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Test App - Basic"
- android:id="@+id/text"
- />
-</LinearLayout>
-
diff --git a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/values/values.xml b/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/values/values.xml
deleted file mode 100644
index 1fbc46e..0000000
--- a/builder/src/test/resources/testData/resources/incMergeData/filesVsValues/resOut/values/values.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <item type="layout" name="alias_replaced_by_file">@layout/main</item>
-</resources>
-