diff options
Diffstat (limited to 'tests/src/com/android/gallery3d/ui/GLViewTest.java')
-rw-r--r-- | tests/src/com/android/gallery3d/ui/GLViewTest.java | 398 |
1 files changed, 0 insertions, 398 deletions
diff --git a/tests/src/com/android/gallery3d/ui/GLViewTest.java b/tests/src/com/android/gallery3d/ui/GLViewTest.java deleted file mode 100644 index b17b25440..000000000 --- a/tests/src/com/android/gallery3d/ui/GLViewTest.java +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright (C) 2010 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 com.android.gallery3d.ui; - -import android.graphics.Rect; -import android.test.suitebuilder.annotation.SmallTest; -import android.view.MotionEvent; - -import junit.framework.TestCase; - -@SmallTest -public class GLViewTest extends TestCase { - @SuppressWarnings("unused") - private static final String TAG = "GLViewTest"; - - @SmallTest - public void testVisibility() { - GLViewMock a = new GLViewMock(); - assertEquals(GLView.VISIBLE, a.getVisibility()); - assertEquals(0, a.mOnVisibilityChangedCalled); - a.setVisibility(GLView.INVISIBLE); - assertEquals(GLView.INVISIBLE, a.getVisibility()); - assertEquals(1, a.mOnVisibilityChangedCalled); - a.setVisibility(GLView.VISIBLE); - assertEquals(GLView.VISIBLE, a.getVisibility()); - assertEquals(2, a.mOnVisibilityChangedCalled); - } - - @SmallTest - public void testComponents() { - GLView view = new GLView(); - assertEquals(0, view.getComponentCount()); - try { - view.getComponent(0); - fail(); - } catch (IndexOutOfBoundsException ex) { - // expected - } - - GLView x = new GLView(); - GLView y = new GLView(); - view.addComponent(x); - view.addComponent(y); - assertEquals(2, view.getComponentCount()); - assertSame(x, view.getComponent(0)); - assertSame(y, view.getComponent(1)); - view.removeComponent(x); - assertSame(y, view.getComponent(0)); - try { - view.getComponent(1); - fail(); - } catch (IndexOutOfBoundsException ex) { - // expected - } - try { - view.addComponent(y); - fail(); - } catch (IllegalStateException ex) { - // expected - } - view.addComponent(x); - view.removeAllComponents(); - assertEquals(0, view.getComponentCount()); - } - - @SmallTest - public void testBounds() { - GLView view = new GLView(); - - assertEquals(0, view.getWidth()); - assertEquals(0, view.getHeight()); - - Rect b = view.bounds(); - assertEquals(0, b.left); - assertEquals(0, b.top); - assertEquals(0, b.right); - assertEquals(0, b.bottom); - - view.layout(10, 20, 30, 100); - assertEquals(20, view.getWidth()); - assertEquals(80, view.getHeight()); - - b = view.bounds(); - assertEquals(10, b.left); - assertEquals(20, b.top); - assertEquals(30, b.right); - assertEquals(100, b.bottom); - } - - @SmallTest - public void testParent() { - GLView a = new GLView(); - GLView b = new GLView(); - assertNull(b.mParent); - a.addComponent(b); - assertSame(a, b.mParent); - a.removeComponent(b); - assertNull(b.mParent); - } - - @SmallTest - public void testRoot() { - GLViewMock a = new GLViewMock(); - GLViewMock b = new GLViewMock(); - GLRoot r = new GLRootStub(); - GLRoot r2 = new GLRootStub(); - a.addComponent(b); - - // Attach to root r - assertEquals(0, a.mOnAttachCalled); - assertEquals(0, b.mOnAttachCalled); - a.attachToRoot(r); - assertEquals(1, a.mOnAttachCalled); - assertEquals(1, b.mOnAttachCalled); - assertSame(r, a.getGLRoot()); - assertSame(r, b.getGLRoot()); - - // Detach from r - assertEquals(0, a.mOnDetachCalled); - assertEquals(0, b.mOnDetachCalled); - a.detachFromRoot(); - assertEquals(1, a.mOnDetachCalled); - assertEquals(1, b.mOnDetachCalled); - - // Attach to another root r2 - assertEquals(1, a.mOnAttachCalled); - assertEquals(1, b.mOnAttachCalled); - a.attachToRoot(r2); - assertEquals(2, a.mOnAttachCalled); - assertEquals(2, b.mOnAttachCalled); - assertSame(r2, a.getGLRoot()); - assertSame(r2, b.getGLRoot()); - - // Detach from r2 - assertEquals(1, a.mOnDetachCalled); - assertEquals(1, b.mOnDetachCalled); - a.detachFromRoot(); - assertEquals(2, a.mOnDetachCalled); - assertEquals(2, b.mOnDetachCalled); - } - - @SmallTest - public void testRoot2() { - GLView a = new GLViewMock(); - GLViewMock b = new GLViewMock(); - GLRoot r = new GLRootStub(); - - a.attachToRoot(r); - - assertEquals(0, b.mOnAttachCalled); - a.addComponent(b); - assertEquals(1, b.mOnAttachCalled); - - assertEquals(0, b.mOnDetachCalled); - a.removeComponent(b); - assertEquals(1, b.mOnDetachCalled); - } - - @SmallTest - public void testInvalidate() { - GLView a = new GLView(); - GLRootMock r = new GLRootMock(); - a.attachToRoot(r); - assertEquals(0, r.mRequestRenderCalled); - a.invalidate(); - assertEquals(1, r.mRequestRenderCalled); - } - - @SmallTest - public void testRequestLayout() { - GLView a = new GLView(); - GLView b = new GLView(); - GLRootMock r = new GLRootMock(); - a.attachToRoot(r); - a.addComponent(b); - assertEquals(0, r.mRequestLayoutContentPaneCalled); - b.requestLayout(); - assertEquals(1, r.mRequestLayoutContentPaneCalled); - } - - @SmallTest - public void testLayout() { - GLViewMock a = new GLViewMock(); - GLViewMock b = new GLViewMock(); - GLViewMock c = new GLViewMock(); - GLRootMock r = new GLRootMock(); - - a.attachToRoot(r); - a.addComponent(b); - a.addComponent(c); - - assertEquals(0, a.mOnLayoutCalled); - a.layout(10, 20, 60, 100); - assertEquals(1, a.mOnLayoutCalled); - assertEquals(1, b.mOnLayoutCalled); - assertEquals(1, c.mOnLayoutCalled); - assertTrue(a.mOnLayoutChangeSize); - assertTrue(b.mOnLayoutChangeSize); - assertTrue(c.mOnLayoutChangeSize); - - // same size should not trigger onLayout - a.layout(10, 20, 60, 100); - assertEquals(1, a.mOnLayoutCalled); - - // unless someone requested it, but only those on the path - // to the requester. - assertEquals(0, r.mRequestLayoutContentPaneCalled); - b.requestLayout(); - a.layout(10, 20, 60, 100); - assertEquals(1, r.mRequestLayoutContentPaneCalled); - assertEquals(2, a.mOnLayoutCalled); - assertEquals(2, b.mOnLayoutCalled); - assertEquals(1, c.mOnLayoutCalled); - } - - @SmallTest - public void testRender() { - GLViewMock a = new GLViewMock(); - GLViewMock b = new GLViewMock(); - - a.addComponent(b); - GLCanvasStub canvas = new GLCanvasStub(); - assertEquals(0, a.mRenderBackgroundCalled); - assertEquals(0, b.mRenderBackgroundCalled); - a.render(canvas); - assertEquals(1, a.mRenderBackgroundCalled); - assertEquals(1, b.mRenderBackgroundCalled); - } - - @SmallTest - public void testMeasure() { - GLViewMock a = new GLViewMock(); - GLViewMock b = new GLViewMock(); - GLViewMock c = new GLViewMock(); - GLRootMock r = new GLRootMock(); - - a.addComponent(b); - a.addComponent(c); - a.attachToRoot(r); - - assertEquals(0, a.mOnMeasureCalled); - a.measure(100, 200); - assertEquals(1, a.mOnMeasureCalled); - assertEquals(1, b.mOnMeasureCalled); - assertEquals(100, a.mOnMeasureWidthSpec); - assertEquals(200, a.mOnMeasureHeightSpec); - assertEquals(100, b.mOnMeasureWidthSpec); - assertEquals(200, b.mOnMeasureHeightSpec); - assertEquals(100, a.getMeasuredWidth()); - assertEquals(200, b.getMeasuredHeight()); - - // same spec should not trigger onMeasure - a.measure(100, 200); - assertEquals(1, a.mOnMeasureCalled); - - // unless someone requested it, but only those on the path - // to the requester. - b.requestLayout(); - a.measure(100, 200); - assertEquals(2, a.mOnMeasureCalled); - assertEquals(2, b.mOnMeasureCalled); - assertEquals(1, c.mOnMeasureCalled); - } - - class MyGLView extends GLView { - private int mWidth; - int mOnTouchCalled; - int mOnTouchX; - int mOnTouchY; - int mOnTouchAction; - - public MyGLView(int width) { - mWidth = width; - } - - @Override - protected void onLayout(boolean changeSize, int left, int top, - int right, int bottom) { - // layout children from left to right - // call children's layout. - int x = 0; - for (int i = 0, n = getComponentCount(); i < n; ++i) { - GLView item = getComponent(i); - item.measure(0, 0); - int w = item.getMeasuredWidth(); - int h = item.getMeasuredHeight(); - item.layout(x, 0, x + w, h); - x += w; - } - } - - @Override - protected void onMeasure(int widthSpec, int heightSpec) { - setMeasuredSize(mWidth, 100); - } - - @Override - protected boolean onTouch(MotionEvent event) { - mOnTouchCalled++; - mOnTouchX = (int) event.getX(); - mOnTouchY = (int) event.getY(); - mOnTouchAction = event.getAction(); - return true; - } - } - - private MotionEvent NewMotionEvent(int action, int x, int y) { - return MotionEvent.obtain(0, 0, action, x, y, 0); - } - - @SmallTest - public void testTouchEvent() { - // We construct a tree with four nodes. Only the x coordinate is used: - // A = [0..............................300) - // B = [0......100) - // C = [100......200) - // D = [100..150) - - MyGLView a = new MyGLView(300); - MyGLView b = new MyGLView(100); - MyGLView c = new MyGLView(100); - MyGLView d = new MyGLView(50); - GLRoot r = new GLRootStub(); - - a.addComponent(b); - a.addComponent(c); - c.addComponent(d); - a.attachToRoot(r); - a.layout(0, 0, 300, 100); - - int DOWN = MotionEvent.ACTION_DOWN; - int UP = MotionEvent.ACTION_UP; - int MOVE = MotionEvent.ACTION_MOVE; - int CANCEL = MotionEvent.ACTION_CANCEL; - - // simple case - assertEquals(0, a.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 250, 0)); - assertEquals(DOWN, a.mOnTouchAction); - a.dispatchTouchEvent(NewMotionEvent(UP, 250, 0)); - assertEquals(UP, a.mOnTouchAction); - assertEquals(2, a.mOnTouchCalled); - - // pass to a child, check the location is offseted. - assertEquals(0, c.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 175, 0)); - a.dispatchTouchEvent(NewMotionEvent(UP, 175, 0)); - assertEquals(75, c.mOnTouchX); - assertEquals(0, c.mOnTouchY); - assertEquals(2, c.mOnTouchCalled); - assertEquals(2, a.mOnTouchCalled); - - // motion target cancel event - assertEquals(0, d.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 125, 0)); - assertEquals(1, d.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(MOVE, 250, 0)); - assertEquals(2, d.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(MOVE, 50, 0)); - assertEquals(3, d.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 175, 0)); - assertEquals(4, d.mOnTouchCalled); - assertEquals(CANCEL, d.mOnTouchAction); - assertEquals(3, c.mOnTouchCalled); - assertEquals(DOWN, c.mOnTouchAction); - a.dispatchTouchEvent(NewMotionEvent(UP, 175, 0)); - - // motion target is removed - assertEquals(4, d.mOnTouchCalled); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 125, 0)); - assertEquals(5, d.mOnTouchCalled); - a.removeComponent(c); - assertEquals(6, d.mOnTouchCalled); - assertEquals(CANCEL, d.mOnTouchAction); - - // invisible component should not get events - assertEquals(2, a.mOnTouchCalled); - assertEquals(0, b.mOnTouchCalled); - b.setVisibility(GLView.INVISIBLE); - a.dispatchTouchEvent(NewMotionEvent(DOWN, 50, 0)); - assertEquals(3, a.mOnTouchCalled); - assertEquals(0, b.mOnTouchCalled); - } -} |