com.android.builder.internal.TestManifestGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of builder Show documentation
Show all versions of builder Show documentation
Library to build Android applications.
/*
* 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.internal;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
/**
* Generate an AndroidManifest.xml file for test projects.
*/
public class TestManifestGenerator {
private static final String TEMPLATE = "AndroidManifest.template";
private static final String PH_PACKAGE = "#PACKAGE#";
private static final String PH_MIN_SDK_VERSION = "#MINSDKVERSION#";
private static final String PH_TARGET_SDK_VERSION = "#TARGETSDKVERSION#";
private static final String PH_TESTED_PACKAGE = "#TESTEDPACKAGE#";
private static final String PH_TEST_RUNNER = "#TESTRUNNER#";
private static final String PH_HANDLE_PROFILING = "#HANDLEPROFILING#";
private static final String PH_FUNCTIONAL_TEST = "#FUNCTIONALTEST#";
private final File mOutputFile;
private final String mPackageName;
private final String mMinSdkVersion;
private final String mTargetSdkVersion;
private final String mTestedPackageName;
private final String mTestRunnerName;
private final boolean mHandleProfiling;
private final boolean mFunctionalTest;
public TestManifestGenerator(
@NonNull File outputFile,
@NonNull String packageName,
@Nullable String minSdkVersion,
@Nullable String targetSdkVersion,
@NonNull String testedPackageName,
@NonNull String testRunnerName,
@NonNull Boolean handleProfiling,
@NonNull Boolean functionalTest) {
mOutputFile = outputFile;
mPackageName = packageName;
mMinSdkVersion = minSdkVersion;
mTargetSdkVersion = targetSdkVersion != null ? targetSdkVersion : minSdkVersion;
mTestedPackageName = testedPackageName;
mTestRunnerName = testRunnerName;
mHandleProfiling = handleProfiling;
mFunctionalTest = functionalTest;
}
public void generate() throws IOException {
Map map = new HashMap();
map.put(PH_PACKAGE, mPackageName);
map.put(PH_MIN_SDK_VERSION, mMinSdkVersion != null ? mMinSdkVersion : "1");
map.put(PH_TARGET_SDK_VERSION, mTargetSdkVersion != null ? mTargetSdkVersion : map.get(PH_MIN_SDK_VERSION));
map.put(PH_TESTED_PACKAGE, mTestedPackageName);
map.put(PH_TEST_RUNNER, mTestRunnerName);
map.put(PH_HANDLE_PROFILING, Boolean.toString(mHandleProfiling));
map.put(PH_FUNCTIONAL_TEST, Boolean.toString(mFunctionalTest));
URL resource = TestManifestGenerator.class.getResource(TEMPLATE);
if (resource != null) {
URLConnection urlConnection = resource.openConnection();
urlConnection.setUseCaches(false);
TemplateProcessor processor = new TemplateProcessor(
urlConnection.getInputStream(),
map);
processor.generate(mOutputFile);
} else {
throw new RuntimeException("Cannot load template, restart gradle daemons ?");
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy