OSDN Git Service

original
[gb-231r1-is01/GB_2.3_IS01.git] / cts / tests / tests / widget / src / android / widget / cts / ZoomControlsTest.java
diff --git a/cts/tests/tests/widget/src/android/widget/cts/ZoomControlsTest.java b/cts/tests/tests/widget/src/android/widget/cts/ZoomControlsTest.java
new file mode 100644 (file)
index 0000000..617e1d8
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ * 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.widget.cts;
+
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+import dalvik.annotation.ToBeFixed;
+
+import android.content.Context;
+import android.test.InstrumentationTestCase;
+import android.test.UiThreadTest;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ZoomControls;
+
+/**
+ * Test {@link ZoomControls}.
+ */
+@TestTargetClass(ZoomControls.class)
+public class ZoomControlsTest extends InstrumentationTestCase {
+    private Context mContext;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mContext = getInstrumentation().getContext();
+    }
+
+    @TestTargets({
+        @TestTargetNew(
+            level = TestLevel.COMPLETE,
+            method = "ZoomControls",
+            args = {android.content.Context.class}
+        ),
+        @TestTargetNew(
+            level = TestLevel.COMPLETE,
+            method = "ZoomControls",
+            args = {android.content.Context.class, android.util.AttributeSet.class}
+        )
+    })
+    public void testConstructor() {
+        new ZoomControls(mContext);
+
+        new ZoomControls(mContext, null);
+    }
+
+    @TestTargetNew(
+        level = TestLevel.SUFFICIENT,
+        method = "setOnZoomInClickListener",
+        args = {android.view.View.OnClickListener.class},
+        notes = "not possible to trigger a zoom button click programmatically using public API"
+    )
+    @ToBeFixed(bug = "1695243", explanation = "Android API javadocs are incomplete.")
+    public void testSetOnZoomInClickListener() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+
+        // normal parameters
+        final MockOnClickListener clickListener = new MockOnClickListener();
+        zoomControls.setOnZoomInClickListener(clickListener);
+
+        // exceptional parameters
+        zoomControls.setOnZoomInClickListener(null);
+    }
+
+    private class MockOnClickListener implements OnClickListener {
+        public void onClick(View v) {
+            // ignore
+        }
+    }
+
+    @TestTargetNew(
+        level = TestLevel.SUFFICIENT,
+        method = "setOnZoomOutClickListener",
+        args = {android.view.View.OnClickListener.class},
+        notes = "not possible to trigger a zoom button click programmatically using public API"
+    )
+    @ToBeFixed(bug = "1695243", explanation = "Android API javadocs are incomplete.")
+    public void testSetOnZoomOutClickListener() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+
+        // normal parameters
+        final MockOnClickListener clickListener = new MockOnClickListener();
+        zoomControls.setOnZoomOutClickListener(clickListener);
+
+        // exceptional parameters
+        zoomControls.setOnZoomOutClickListener(null);
+    }
+
+    @TestTargetNew(
+        level = TestLevel.PARTIAL_COMPLETE,
+        method = "setZoomSpeed",
+        args = {long.class}
+    )
+    @ToBeFixed(bug = "1400249", explanation = "how to check zoom speed after set.")
+    public void testSetZoomSpeed() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+
+        zoomControls.setZoomSpeed(500);
+
+        // TODO: how to check?
+    }
+
+    @TestTargetNew(
+        level = TestLevel.NOT_NECESSARY,
+        notes = "this method always return true",
+        method = "onTouchEvent",
+        args = {android.view.MotionEvent.class}
+    )
+    public void testOnTouchEvent() {
+        // onTouchEvent() is implementation details, do NOT test
+    }
+
+    @TestTargets({
+        @TestTargetNew(
+            level = TestLevel.COMPLETE,
+            method = "show",
+            args = {}
+        ),
+        @TestTargetNew(
+            level = TestLevel.COMPLETE,
+            method = "hide",
+            args = {}
+        )
+    })
+    @ToBeFixed(bug = "1695243", explanation = "Android API javadocs are incomplete.")
+    public void testShowAndHide() {
+        final ZoomControls zoomControls = new ZoomControls(mContext);
+        assertEquals(View.VISIBLE, zoomControls.getVisibility());
+
+        zoomControls.hide();
+        assertEquals(View.GONE, zoomControls.getVisibility());
+
+        zoomControls.show();
+        assertEquals(View.VISIBLE, zoomControls.getVisibility());
+    }
+
+    @TestTargetNew(
+        level = TestLevel.SUFFICIENT,
+        method = "setIsZoomInEnabled",
+        args = {boolean.class},
+        notes="not feasible to test effect of calling this method"
+    )
+    @ToBeFixed(bug = "1695243", explanation = "Android API javadocs are incomplete.")
+    public void testSetIsZoomInEnabled() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+        zoomControls.setIsZoomInEnabled(false);
+        zoomControls.setIsZoomInEnabled(true);
+    }
+
+    @TestTargetNew(
+        level = TestLevel.SUFFICIENT,
+        method = "setIsZoomOutEnabled",
+        args = {boolean.class},
+        notes="not feasible to test effect of calling this method"
+    )
+    @ToBeFixed(bug = "1695243", explanation = "Android API javadocs are incomplete.")
+    public void testSetIsZoomOutEnabled() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+        zoomControls.setIsZoomOutEnabled(false);
+        zoomControls.setIsZoomOutEnabled(true);
+    }
+
+    @TestTargetNew(
+        level = TestLevel.COMPLETE,
+        method = "hasFocus",
+        args = {}
+    )
+    @UiThreadTest
+    public void testHasFocus() {
+        ZoomControls zoomControls = new ZoomControls(mContext);
+        assertFalse(zoomControls.hasFocus());
+
+        zoomControls.requestFocus();
+        assertTrue(zoomControls.hasFocus());
+    }
+}