blob: 3501e86ce654326d9821986e4500339c4228af63 [file] [log] [blame]
/*
* Copyright (C) 2008 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 android.content.pm.cts;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Parcel;
import android.test.AndroidTestCase;
import android.util.Printer;
public class ResolveInfoTest extends AndroidTestCase {
private static final String PACKAGE_NAME = "com.android.cts.stub";
private static final String MAIN_ACTION_NAME = "android.intent.action.MAIN";
private static final String ACTIVITY_NAME = "android.content.pm.cts.TestPmActivity";
private static final String SERVICE_NAME = "android.content.pm.cts.activity.PMTEST_SERVICE";
public final void testResolveInfo() {
// Test constructor
new ResolveInfo();
PackageManager pm = getContext().getPackageManager();
Intent intent = new Intent(MAIN_ACTION_NAME);
intent.setComponent(new ComponentName(PACKAGE_NAME, ACTIVITY_NAME));
ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
// Test loadLabel, loadIcon, getIconResource, toString, describeContents
String expectedLabel = "Android TestCase";
assertEquals(expectedLabel, resolveInfo.loadLabel(pm).toString());
assertNotNull(resolveInfo.loadIcon(pm));
assertTrue(resolveInfo.getIconResource() != 0);
assertNotNull(resolveInfo.toString());
assertEquals(0, resolveInfo.describeContents());
}
public final void testDump() {
PackageManager pm = getContext().getPackageManager();
Intent intent = new Intent(SERVICE_NAME);
ResolveInfo resolveInfo = pm.resolveService(intent, PackageManager.GET_RESOLVED_FILTER);
Parcel p = Parcel.obtain();
resolveInfo.writeToParcel(p, 0);
p.setDataPosition(0);
ResolveInfo infoFromParcel = ResolveInfo.CREATOR.createFromParcel(p);
// Test writeToParcel
assertEquals(resolveInfo.getIconResource(), infoFromParcel.getIconResource());
assertEquals(resolveInfo.priority, infoFromParcel.priority);
assertEquals(resolveInfo.preferredOrder, infoFromParcel.preferredOrder);
assertEquals(resolveInfo.match, infoFromParcel.match);
assertEquals(resolveInfo.specificIndex, infoFromParcel.specificIndex);
assertEquals(resolveInfo.labelRes, infoFromParcel.labelRes);
assertEquals(resolveInfo.nonLocalizedLabel, infoFromParcel.nonLocalizedLabel);
assertEquals(resolveInfo.icon, infoFromParcel.icon);
// Test dump
TestPrinter printer = new TestPrinter();
String prefix = "TestResolveInfo";
resolveInfo.dump(printer, prefix);
assertTrue(printer.isPrintlnCalled);
}
private class TestPrinter implements Printer {
public boolean isPrintlnCalled;
public void println(String x) {
isPrintlnCalled = true;
}
}
}