147 lines
5.4 KiB
Java
147 lines
5.4 KiB
Java
/*
|
|
* 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
|
|
}
|
|
}
|
|
}
|