blob: ba099926bdd1019b04d63e54398561b0aabe1fbd [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.testshell;
import android.app.Application;
import android.content.Intent;
import org.chromium.base.PathUtils;
import org.chromium.content.browser.ResourceExtractor;
import org.chromium.content.common.CommandLine;
import java.util.ArrayList;
/**
* A basic test shell {@link Application}. Handles setting up the native library and
* loading the right resources.
*/
public class ChromiumTestShellApplication extends Application {
private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chromiumtestshell";
private static final String[] CHROME_MANDATORY_PAKS = {
"en-US.pak",
"resources.pak",
"chrome_100_percent.pak",
};
private static final String COMMAND_LINE_FILE =
"/data/local/tmp/chromium-testshell-command-line";
ArrayList<ChromiumTestShellApplicationObserver> mObservers;
@Override
public void onCreate() {
super.onCreate();
ResourceExtractor.setMandatoryPaksToExtract(CHROME_MANDATORY_PAKS);
PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX);
mObservers = new ArrayList<ChromiumTestShellApplicationObserver>();
}
@Override
public void sendBroadcast(Intent intent) {
boolean shouldFire = true;
for (ChromiumTestShellApplicationObserver observer : mObservers) {
shouldFire &= observer.onSendBroadcast(intent);
}
if (shouldFire) {
super.sendBroadcast(intent);
}
}
public void addObserver(ChromiumTestShellApplicationObserver observer) {
mObservers.add(observer);
}
public void removeObserver(ChromiumTestShellApplicationObserver observer) {
mObservers.remove(observer);
}
public static void initCommandLine() {
if (!CommandLine.isInitialized())
CommandLine.initFromFile(COMMAND_LINE_FILE);
}
}