cmsdk: Add example service test.
Change-Id: I52972bc4d32505ba7fd2f7278efdb9441c39b82a
This commit is contained in:
parent
bbab82e97b
commit
33e300e32d
|
@ -1,7 +0,0 @@
|
|||
package org.cyanogenmod.platform.internal;
|
||||
|
||||
/**
|
||||
* Created by Adnan on 4/30/15.
|
||||
*/
|
||||
public class CMStatusBarManagerTest {
|
||||
}
|
|
@ -19,7 +19,7 @@ include $(CLEAR_VARS)
|
|||
LOCAL_MODULE_TAGS := tests
|
||||
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||
org.cyanogenmod.platform.sdk
|
||||
org.cyanogenmod.platform
|
||||
|
||||
LOCAL_SRC_FILES := $(call all-subdir-java-files, src/)
|
||||
|
||||
|
|
|
@ -0,0 +1,146 @@
|
|||
/*
|
||||
* Copyright (c) 2016 The CyanogenMod 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 org.cyanogenmod.platform.internal;
|
||||
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import cyanogenmod.app.CMStatusBarManager;
|
||||
import cyanogenmod.app.CustomTile;
|
||||
import cyanogenmod.app.ICMStatusBarManager;
|
||||
|
||||
/**
|
||||
* Created by adnan on 1/5/16.
|
||||
*/
|
||||
public class CMStatusBarManagerServiceTest extends AndroidTestCase {
|
||||
private ICMStatusBarManager mInternalServiceInterface;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
mInternalServiceInterface = CMStatusBarManager.getInstance(mContext).getService();
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testAddTileById() {
|
||||
//Create placeholder tile
|
||||
int resourceInt = org.cyanogenmod.tests.R.drawable.ic_launcher;
|
||||
CustomTile customTile = new CustomTile.Builder(mContext)
|
||||
.setIcon(resourceInt)
|
||||
.build();
|
||||
|
||||
int[] idOut = new int[1];
|
||||
// Test adding a tile directly from the service interface.
|
||||
try {
|
||||
mInternalServiceInterface
|
||||
.createCustomTileWithTag(mContext.getPackageName(), mContext.getPackageName(),
|
||||
null, 1337, customTile, idOut, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when adding a tile by id");
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testAddAndRemoveTileById() {
|
||||
//Create placeholder tile
|
||||
int resourceInt = org.cyanogenmod.tests.R.drawable.ic_launcher;
|
||||
CustomTile customTile = new CustomTile.Builder(mContext)
|
||||
.setIcon(resourceInt)
|
||||
.build();
|
||||
|
||||
int[] idOut = new int[1];
|
||||
try {
|
||||
// Test adding a tile directly from the service interface.
|
||||
mInternalServiceInterface
|
||||
.createCustomTileWithTag(mContext.getPackageName(), mContext.getPackageName(),
|
||||
null, 1337, customTile, idOut, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when adding a tile by id");
|
||||
}
|
||||
|
||||
try {
|
||||
mInternalServiceInterface
|
||||
.removeCustomTileWithTag(mContext.getPackageName(), null,
|
||||
1337, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when removing a tile by id");
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testAddTileByTag() {
|
||||
//Create placeholder tile
|
||||
int resourceInt = org.cyanogenmod.tests.R.drawable.ic_launcher;
|
||||
CustomTile customTile = new CustomTile.Builder(mContext)
|
||||
.setIcon(resourceInt)
|
||||
.build();
|
||||
|
||||
int[] idOut = new int[1];
|
||||
try {
|
||||
// Test adding a tile directly from the service interface.
|
||||
mInternalServiceInterface
|
||||
.createCustomTileWithTag(mContext.getPackageName(), mContext.getPackageName()
|
||||
, "fake-tag", 0, customTile, idOut, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when adding a tile by tag");
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testAddAndRemoveTileByTag() {
|
||||
//Create placeholder tile
|
||||
int resourceInt = org.cyanogenmod.tests.R.drawable.ic_launcher;
|
||||
CustomTile customTile = new CustomTile.Builder(mContext)
|
||||
.setIcon(resourceInt)
|
||||
.build();
|
||||
|
||||
int[] idOut = new int[1];
|
||||
try {
|
||||
// Test adding a tile directly from the service interface.
|
||||
mInternalServiceInterface
|
||||
.createCustomTileWithTag(mContext.getPackageName(), mContext.getPackageName(),
|
||||
"fake-tag", 0, customTile, idOut, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when adding a tile by tag");
|
||||
}
|
||||
|
||||
try {
|
||||
// Test removing tile directly from the service interface
|
||||
mInternalServiceInterface
|
||||
.removeCustomTileWithTag(mContext.getPackageName(), mContext.getPackageName(),
|
||||
0, UserHandle.myUserId());
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when removing a tile by tag");
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testFakePackageThrowsSecurityExceptionOnRemove() {
|
||||
try {
|
||||
mInternalServiceInterface
|
||||
.removeCustomTileWithTag("fack-package-throw", "fake-package-throw",
|
||||
0, UserHandle.myUserId());
|
||||
fail("Security Exception not thrown on fake package removing a tile");
|
||||
} catch (RemoteException e) {
|
||||
fail("Remote exception when removing a tile by tag");
|
||||
} catch (SecurityException e) {
|
||||
//Expected
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue