aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuichi Araki <yaraki@google.com>2014-08-13 15:45:34 +0900
committerYuichi Araki <yaraki@google.com>2014-09-02 13:09:51 +0900
commitf7813b0d2cb811c8212a8aec81f9bda09468b3cc (patch)
tree6408cb31972c5acf0944117df05c8f484c6e626b
parent7dd9a51f6d2873240cc9d4afd3905da9bb06c24f (diff)
downloadandroid-f7813b0d2cb811c8212a8aec81f9bda09468b3cc.tar.gz
PdfRendererBasic: Add tests.
Change-Id: Ie0482b62017c24b343a390908dc45b29a759ae86
-rw-r--r--ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/AndroidManifest.xml2
-rw-r--r--ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/MainActivity.java5
-rw-r--r--ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java9
-rw-r--r--ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/AndroidManifest.xml43
-rw-r--r--ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/src/com/example/android/pdfrendererbasic/tests/PdfRendererBasicFragmentTests.java132
5 files changed, 188 insertions, 3 deletions
diff --git a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/AndroidManifest.xml b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/AndroidManifest.xml
index 59d187dd..22870679 100644
--- a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/AndroidManifest.xml
+++ b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/AndroidManifest.xml
@@ -20,8 +20,6 @@
android:versionCode="1"
android:versionName="1.0">
- <uses-sdk android:minSdkVersion="L" android:targetSdkVersion="L" />
-
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
diff --git a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/MainActivity.java b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/MainActivity.java
index 54cb54dc..6b7e8b45 100644
--- a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/MainActivity.java
+++ b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/MainActivity.java
@@ -24,13 +24,16 @@ import android.view.MenuItem;
public class MainActivity extends Activity {
+ public static final String FRAGMENT_PDF_RENDERER_BASIC = "pdf_renderer_basic";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_real);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
- .add(R.id.container, new PdfRendererBasicFragment())
+ .add(R.id.container, new PdfRendererBasicFragment(),
+ FRAGMENT_PDF_RENDERER_BASIC)
.commit();
}
}
diff --git a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
index 2d8cf609..e413c659 100644
--- a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
+++ b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
@@ -193,6 +193,15 @@ public class PdfRendererBasicFragment extends Fragment implements View.OnClickLi
getActivity().setTitle(getString(R.string.app_name_with_index, index + 1, pageCount));
}
+ /**
+ * Gets the number of pages in the PDF. This method is marked as public for testing.
+ *
+ * @return The number of pages.
+ */
+ public int getPageCount() {
+ return mPdfRenderer.getPageCount();
+ }
+
@Override
public void onClick(View view) {
switch (view.getId()) {
diff --git a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/AndroidManifest.xml b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/AndroidManifest.xml
new file mode 100644
index 00000000..35ff2a6b
--- /dev/null
+++ b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/AndroidManifest.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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 name must be unique so suffix with "tests" so package loader doesn't ignore us -->
+<manifest
+ package="com.example.android.pdfrendererbasic.tests"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:versionCode="1"
+ android:versionName="1.0">
+
+ <uses-sdk
+ android:minSdkVersion="L"
+ android:targetSdkVersion="L"/>
+
+ <!-- We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases. -->
+ <application>
+ <uses-library android:name="android.test.runner"/>
+ </application>
+
+ <!--
+ Specifies the instrumentation test runner used to run the tests.
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:label="Tests for com.example.android.pdfrendererbasic"
+ android:targetPackage="com.example.android.pdfrendererbasic"/>
+
+</manifest>
diff --git a/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/src/com/example/android/pdfrendererbasic/tests/PdfRendererBasicFragmentTests.java b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/src/com/example/android/pdfrendererbasic/tests/PdfRendererBasicFragmentTests.java
new file mode 100644
index 00000000..0f94cbf8
--- /dev/null
+++ b/ui/graphics/PdfRendererBasic/PdfRendererBasicSample/tests/src/com/example/android/pdfrendererbasic/tests/PdfRendererBasicFragmentTests.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2014 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.example.android.pdfrendererbasic.tests;
+
+import android.content.pm.ActivityInfo;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.TouchUtils;
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.View;
+import android.widget.Button;
+
+import com.example.android.pdfrendererbasic.MainActivity;
+import com.example.android.pdfrendererbasic.PdfRendererBasicFragment;
+import com.example.android.pdfrendererbasic.R;
+
+/**
+ * Tests for PdfRendererBasic sample.
+ */
+public class PdfRendererBasicFragmentTests extends ActivityInstrumentationTestCase2<MainActivity> {
+
+ private MainActivity mActivity;
+ private PdfRendererBasicFragment mFragment;
+
+ private Button mButtonPrevious;
+ private Button mButtonNext;
+
+ public PdfRendererBasicFragmentTests() {
+ super(MainActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mActivity = getActivity();
+ mFragment = (PdfRendererBasicFragment) mActivity.getFragmentManager()
+ .findFragmentByTag(MainActivity.FRAGMENT_PDF_RENDERER_BASIC);
+ }
+
+ @LargeTest
+ public void testActivityTitle() {
+ // The title of the activity should be "PdfRendererBasic (1/10)" at first
+ String expectedActivityTitle = mActivity.getString(R.string.app_name_with_index, 1,
+ mFragment.getPageCount());
+ assertEquals(expectedActivityTitle, mActivity.getTitle());
+ }
+
+ @LargeTest
+ public void testButtons_previousDisabledAtFirst() {
+ setUpButtons();
+ // Check that the previous button is disabled at first
+ assertFalse(mButtonPrevious.isEnabled());
+ // The next button should be enabled
+ assertTrue(mButtonNext.isEnabled());
+ }
+
+ @LargeTest
+ public void testButtons_bothEnabledInMiddle() {
+ setUpButtons();
+ turnPages(1);
+ // Two buttons should be both enabled
+ assertTrue(mButtonPrevious.isEnabled());
+ assertTrue(mButtonNext.isEnabled());
+ }
+
+ @LargeTest
+ public void testButtons_nextDisabledLastPage() {
+ setUpButtons();
+ int pageCount = mFragment.getPageCount();
+ // Click till it reaches the last page
+ turnPages(pageCount - 1);
+ // Check the page count
+ String expectedActivityTitle = mActivity.getString(R.string.app_name_with_index,
+ pageCount, pageCount);
+ assertEquals(expectedActivityTitle, mActivity.getTitle());
+ // The previous button should be enabled
+ assertTrue(mButtonPrevious.isEnabled());
+ // Check that the next button is disabled
+ assertFalse(mButtonNext.isEnabled());
+ }
+
+ @LargeTest
+ public void testOrientationChangePreserveState() {
+ mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ setUpButtons();
+ turnPages(1);
+ int pageCount = mFragment.getPageCount();
+ String expectedActivityTitle = mActivity.getString(R.string.app_name_with_index,
+ 2, pageCount);
+ assertEquals(expectedActivityTitle, mActivity.getTitle());
+ mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ // Check that the title is the same after orientation change
+ assertEquals(expectedActivityTitle, mActivity.getTitle());
+ }
+
+ /**
+ * Prepares references to the buttons "Previous" and "Next".
+ */
+ private void setUpButtons() {
+ View view = mFragment.getView();
+ assertNotNull(view);
+ mButtonPrevious = (Button) view.findViewById(R.id.previous);
+ assertNotNull(mButtonPrevious);
+ mButtonNext = (Button) view.findViewById(R.id.next);
+ assertNotNull(mButtonNext);
+ }
+
+ /**
+ * Click the "Next" button to turn the pages.
+ *
+ * @param count The number of times to turn pages.
+ */
+ private void turnPages(int count) {
+ for (int i = 0; i < count; ++i) {
+ TouchUtils.clickView(this, mButtonNext);
+ }
+ }
+
+}