blob: 40b4b283657df16a060e0cb30171a86a6a2df5a8 [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.view.cts;
import android.graphics.PixelFormat;
import android.os.Binder;
import android.os.IBinder;
import android.os.Parcel;
import android.test.AndroidTestCase;
import android.text.SpannedString;
import android.view.Gravity;
import android.view.WindowManager;
public class WindowManager_LayoutParamsTest extends AndroidTestCase {
private static final int WINDOW_WIDTH = 320;
private static final int WINDOW_HEIGHT = 480;
private static final int XPOS = 10;
private static final int YPOS = 15;
private static final String PACKAGE_NAME = "android.content";
private static final String TITLE = "params title";
private static final String PARAMS_TITLE = "params title";
private static final float HORIZONTAL_MARGIN = 1.0f;
private static final float VERTICAL_MARGIN = 3.0f;
private static final float ALPHA = 1.0f;
private static final float DIM_AMOUNT = 1.0f;
private static final float HORIZONTAL_WEIGHT = 1.0f;
private static final float MARGIN = 1.0f;
private static final float VERTICAL_WEIGHT = 1.0f;
private static final int WINDOW_ANIMATIONS = 6;
private WindowManager.LayoutParams mLayoutParams;
public void testConstructor() {
new WindowManager.LayoutParams();
new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_APPLICATION);
new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER);
new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
new WindowManager.LayoutParams(WINDOW_WIDTH, WINDOW_HEIGHT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
new WindowManager.LayoutParams(WINDOW_WIDTH, WINDOW_HEIGHT, XPOS, YPOS,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
IBinder binder = new Binder();
mLayoutParams = new WindowManager.LayoutParams();
mLayoutParams.token = binder;
mLayoutParams.packageName = PACKAGE_NAME;
mLayoutParams.setTitle(TITLE);
Parcel parcel = Parcel.obtain();
mLayoutParams.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
new WindowManager.LayoutParams(parcel);
assertTrue(WindowManager.LayoutParams.mayUseInputMethod(0));
assertTrue(WindowManager.LayoutParams.mayUseInputMethod(
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM));
assertFalse(WindowManager.LayoutParams
.mayUseInputMethod(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE));
assertFalse(WindowManager.LayoutParams
.mayUseInputMethod(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM));
}
public void testCopyFrom() {
mLayoutParams = new WindowManager.LayoutParams();
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_BASE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER);
assertEquals(WindowManager.LayoutParams.TYPE_CHANGED
| WindowManager.LayoutParams.FLAGS_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(WindowManager.LayoutParams.TYPE_BASE_APPLICATION, mLayoutParams.type);
assertEquals(WindowManager.LayoutParams.FLAG_DITHER, mLayoutParams.flags);
mLayoutParams = new WindowManager.LayoutParams();
params = new WindowManager.LayoutParams(WINDOW_WIDTH, WINDOW_HEIGHT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED
| WindowManager.LayoutParams.FLAGS_CHANGED
| WindowManager.LayoutParams.FORMAT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(WINDOW_WIDTH, mLayoutParams.width);
assertEquals(WINDOW_HEIGHT, mLayoutParams.height);
assertEquals(WindowManager.LayoutParams.FLAG_DITHER, mLayoutParams.flags);
assertEquals(PixelFormat.JPEG, mLayoutParams.format);
params = new WindowManager.LayoutParams();
params.setTitle(PARAMS_TITLE);
params.alpha = ALPHA - 0.5f;
params.windowAnimations = WINDOW_ANIMATIONS;
params.dimAmount = DIM_AMOUNT - 1.0f;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.TITLE_CHANGED
| WindowManager.LayoutParams.ALPHA_CHANGED
| WindowManager.LayoutParams.ANIMATION_CHANGED
| WindowManager.LayoutParams.DIM_AMOUNT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.getTitle(), mLayoutParams.getTitle());
assertEquals(params.alpha, mLayoutParams.alpha);
assertEquals(params.dimAmount, mLayoutParams.dimAmount);
params = new WindowManager.LayoutParams();
params.gravity = Gravity.TOP;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.gravity, mLayoutParams.gravity);
params = new WindowManager.LayoutParams();
params.horizontalMargin = HORIZONTAL_MARGIN;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.horizontalMargin, mLayoutParams.horizontalMargin);
params = new WindowManager.LayoutParams();
params.horizontalWeight = HORIZONTAL_WEIGHT;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.horizontalWeight, mLayoutParams.horizontalWeight);
params = new WindowManager.LayoutParams();
params.verticalMargin = MARGIN;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.verticalMargin, mLayoutParams.verticalMargin);
params = new WindowManager.LayoutParams();
params.verticalWeight = VERTICAL_WEIGHT;
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(WindowManager.LayoutParams.LAYOUT_CHANGED,
mLayoutParams.copyFrom(params));
assertEquals(params.verticalWeight, mLayoutParams.verticalWeight);
}
public void testDescribeContents() {
mLayoutParams = new WindowManager.LayoutParams();
assertEquals(0, mLayoutParams.describeContents());
}
public void testAccessTitle() {
String title = "";
mLayoutParams = new WindowManager.LayoutParams();
mLayoutParams.setTitle(null);
assertEquals(title, mLayoutParams.getTitle());
title = "Android Test Title";
mLayoutParams.setTitle(title);
assertEquals(title, mLayoutParams.getTitle());
SpannedString spannedTitle = new SpannedString(title);
mLayoutParams.setTitle(spannedTitle);
assertEquals(spannedTitle, mLayoutParams.getTitle());
}
public void testToString() {
mLayoutParams = new WindowManager.LayoutParams();
assertNotNull(mLayoutParams.toString());
mLayoutParams = new WindowManager.LayoutParams(WINDOW_WIDTH, WINDOW_HEIGHT, XPOS, YPOS,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
assertNotNull(mLayoutParams.toString());
}
public void testWriteToParcel() {
IBinder binder = new Binder();
mLayoutParams = new WindowManager.LayoutParams(WINDOW_WIDTH, WINDOW_HEIGHT, XPOS, YPOS,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_DITHER, PixelFormat.JPEG);
mLayoutParams.memoryType = WindowManager.LayoutParams.MEMORY_TYPE_HARDWARE;
mLayoutParams.gravity = Gravity.TOP;
mLayoutParams.horizontalMargin = HORIZONTAL_MARGIN;
mLayoutParams.verticalMargin = VERTICAL_MARGIN;
mLayoutParams.windowAnimations = WINDOW_ANIMATIONS;
mLayoutParams.token = binder;
mLayoutParams.packageName = PACKAGE_NAME;
mLayoutParams.setTitle(PARAMS_TITLE);
Parcel parcel = Parcel.obtain();
mLayoutParams.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
WindowManager.LayoutParams out =
WindowManager.LayoutParams.CREATOR.createFromParcel(parcel);
assertEquals(0, out.copyFrom(mLayoutParams));
try {
mLayoutParams.writeToParcel(null, 0);
fail("should throw NullPointerException");
} catch (NullPointerException e) {
// expected
}
}
public void testDebug() {
}
}