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_MODULE_TAGS := tests
|
||||||
|
|
||||||
LOCAL_STATIC_JAVA_LIBRARIES := \
|
LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||||
org.cyanogenmod.platform.sdk
|
org.cyanogenmod.platform
|
||||||
|
|
||||||
LOCAL_SRC_FILES := $(call all-subdir-java-files, src/)
|
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