blob: 82d6acafbaa79710b8bfd94a54ff11d24743ff88 [file] [log] [blame]
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
*
* 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.ide.common.resources.platform;
import com.android.ide.eclipse.mock.TestLogger;
import com.android.ide.eclipse.tests.AdtTestData;
import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;
import junit.framework.TestCase;
public class AttrsXmlParserManifestTest extends TestCase {
private AttrsXmlParser mParser;
private String mFilePath;
private static final String MOCK_DATA_PATH =
"com/android/ide/eclipse/testdata/mock_manifest_attrs.xml"; //$NON-NLS-1$
@Override
public void setUp() throws Exception {
mFilePath = AdtTestData.getInstance().getTestFilePath(MOCK_DATA_PATH);
mParser = new AttrsXmlParser(mFilePath, new TestLogger(), 100);
}
@Override
public void tearDown() throws Exception {
}
public void testGetOsAttrsXmlPath() throws Exception {
assertEquals(mFilePath, mParser.getOsAttrsXmlPath());
}
private Map<String, DeclareStyleableInfo> preloadAndGetStyleables() {
assertSame(mParser, mParser.preload());
Map<String, DeclareStyleableInfo> styleableList = mParser.getDeclareStyleableList();
// For testing purposes, we want the strings sorted
if (!(styleableList instanceof TreeMap<?, ?>)) {
styleableList = new TreeMap<String, DeclareStyleableInfo>(styleableList);
}
return styleableList;
}
public final void testPreload() throws Exception {
Map<String, DeclareStyleableInfo> styleableList = preloadAndGetStyleables();
assertEquals(
"[AndroidManifest, " +
"AndroidManifestActivityAlias, " +
"AndroidManifestApplication, " +
"AndroidManifestNewElement, " +
"AndroidManifestNewParent, " +
"AndroidManifestPermission" +
"]",
Arrays.toString(styleableList.keySet().toArray()));
}
/**
* Tests that AndroidManifestNewParentNewElement got renamed to AndroidManifestNewElement
* and a parent named AndroidManifestNewParent was automatically created.
*/
public final void testNewParent() throws Exception {
Map<String, DeclareStyleableInfo> styleableList = preloadAndGetStyleables();
DeclareStyleableInfo newElement = styleableList.get("AndroidManifestNewElement");
assertNotNull(newElement);
assertEquals("AndroidManifestNewElement", newElement.getStyleName());
assertEquals("[AndroidManifestNewParent]",
Arrays.toString(newElement.getParents()));
DeclareStyleableInfo newParent = styleableList.get("AndroidManifestNewParent");
assertNotNull(newParent);
assertEquals("[AndroidManifest]",
Arrays.toString(newParent.getParents()));
}
}