summaryrefslogtreecommitdiff
path: root/library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java')
-rw-r--r--library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java390
1 files changed, 196 insertions, 194 deletions
diff --git a/library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java b/library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java
index 531d69e..9d2f784 100644
--- a/library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java
+++ b/library/test/instrumentation/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java
@@ -27,9 +27,7 @@ import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Parcelable;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.annotation.IdRes;
import android.util.SparseArray;
import android.view.AbsSavedState;
import android.view.ContextThemeWrapper;
@@ -37,15 +35,14 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
-
-import androidx.annotation.IdRes;
-
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
import com.android.setupwizardlib.SetupWizardLayout;
import com.android.setupwizardlib.template.HeaderMixin;
import com.android.setupwizardlib.template.NavigationBarMixin;
import com.android.setupwizardlib.template.ProgressBarMixin;
import com.android.setupwizardlib.view.NavigationBar;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -54,191 +51,196 @@ import org.junit.runner.RunWith;
@SmallTest
public class SetupWizardLayoutTest {
- @IdRes
- private static final int ID1234 = 1234;
-
- private Context mContext;
-
- @Before
- public void setUp() throws Exception {
- mContext = new ContextThemeWrapper(InstrumentationRegistry.getContext(),
- R.style.SuwThemeMaterial_Light);
- }
-
- @Test
- public void testDefaultTemplate() {
- SetupWizardLayout layout = new SetupWizardLayout(mContext);
- assertDefaultTemplateInflated(layout);
- }
-
- @Test
- public void testSetHeaderText() {
- SetupWizardLayout layout = new SetupWizardLayout(mContext);
- TextView title = (TextView) layout.findViewById(R.id.suw_layout_title);
- layout.setHeaderText("Abracadabra");
- assertEquals("Header text should be \"Abracadabra\"", "Abracadabra", title.getText());
- }
-
- @Test
- public void testAddView() {
- SetupWizardLayout layout = new SetupWizardLayout(mContext);
- TextView tv = new TextView(mContext);
- tv.setId(R.id.test_view_id);
- layout.addView(tv);
- assertDefaultTemplateInflated(layout);
- View view = layout.findViewById(R.id.test_view_id);
- assertSame("The view added should be the same text view", tv, view);
- }
-
- @Test
- public void testInflateFromXml() {
- LayoutInflater inflater = LayoutInflater.from(mContext);
- SetupWizardLayout layout = (SetupWizardLayout) inflater.inflate(R.layout.test_layout, null);
- assertDefaultTemplateInflated(layout);
- View content = layout.findViewById(R.id.test_content);
- assertTrue("@id/test_content should be a TextView", content instanceof TextView);
- }
-
- @Test
- public void testCustomTemplate() {
- SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
- View templateView = layout.findViewById(R.id.test_template_view);
- assertNotNull("@id/test_template_view should exist in template", templateView);
-
- TextView tv = new TextView(mContext);
- tv.setId(R.id.test_view_id);
- layout.addView(tv);
-
- templateView = layout.findViewById(R.id.test_template_view);
- assertNotNull("@id/test_template_view should exist in template", templateView);
- View contentView = layout.findViewById(R.id.test_view_id);
- assertSame("The view added should be the same text view", tv, contentView);
-
- // The following methods should be no-ops because the custom template doesn't contain the
- // corresponding optional views. Just check that they don't throw exceptions.
- layout.setHeaderText("Abracadabra");
- layout.setIllustration(new ColorDrawable(Color.MAGENTA));
- layout.setLayoutBackground(new ColorDrawable(Color.RED));
- }
-
- @Test
- public void testGetNavigationBar() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- final NavigationBar navigationBar = layout.getNavigationBar();
- assertEquals("Navigation bar should have ID = @id/suw_layout_navigation_bar",
- R.id.suw_layout_navigation_bar, navigationBar.getId());
- }
-
- @Test
- public void testGetNavigationBarNull() {
- // test_template does not have navigation bar so getNavigationBar() should return null.
- final SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
- final NavigationBar navigationBar = layout.getNavigationBar();
- assertNull("getNavigationBar() in test_template should return null", navigationBar);
- }
-
- @Test
- public void testShowProgressBar() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- layout.showProgressBar();
- assertTrue("Progress bar should be shown", layout.isProgressBarShown());
- final View progressBar = layout.findViewById(R.id.suw_layout_progress);
- assertTrue("Progress bar view should be shown",
- progressBar instanceof ProgressBar && progressBar.getVisibility() == View.VISIBLE);
- }
-
- @Test
- public void testHideProgressBar() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- layout.showProgressBar();
- assertTrue("Progress bar should be shown", layout.isProgressBarShown());
- layout.hideProgressBar();
- assertFalse("Progress bar should be hidden", layout.isProgressBarShown());
- final View progressBar = layout.findViewById(R.id.suw_layout_progress);
- assertTrue("Progress bar view should exist",
- progressBar == null || progressBar.getVisibility() != View.VISIBLE);
- }
-
- @Test
- public void testShowProgressBarNotExist() {
- // test_template does not have progress bar, so showNavigationBar() should do nothing.
- final SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
- layout.showProgressBar();
- assertFalse("Progress bar should not be shown", layout.isProgressBarShown());
- }
-
- @Test
- public void testNonMaterialTheme() {
- mContext = new ContextThemeWrapper(InstrumentationRegistry.getContext(),
- android.R.style.Theme);
- new SetupWizardLayout(mContext);
- // Inflating with a non-Material theme should not crash
- }
-
- @Test
- public void testOnRestoreFromInstanceState() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- layout.setId(ID1234);
-
- SparseArray<Parcelable> container = new SparseArray<>();
- layout.saveHierarchyState(container);
-
- final SetupWizardLayout layout2 = new SetupWizardLayout(mContext);
- layout2.setId(ID1234);
- layout2.restoreHierarchyState(container);
-
- assertFalse("Progress bar should not be shown", layout2.isProgressBarShown());
- }
-
- @Test
- public void testOnRestoreFromInstanceStateProgressBarShown() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- layout.setId(ID1234);
-
- layout.setProgressBarShown(true);
-
- SparseArray<Parcelable> container = new SparseArray<>();
- layout.saveHierarchyState(container);
-
- final SetupWizardLayout layout2 = new SetupWizardLayout(mContext);
- layout2.setId(ID1234);
- layout2.restoreHierarchyState(container);
-
- assertTrue("Progress bar should be shown", layout2.isProgressBarShown());
- }
-
- @Test
- public void testOnRestoreFromIncompatibleInstanceState() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- layout.setId(ID1234);
-
- SparseArray<Parcelable> container = new SparseArray<>();
- container.put(1234, AbsSavedState.EMPTY_STATE);
- layout.restoreHierarchyState(container);
-
- // SetupWizardLayout shouldn't crash with incompatible Parcelable
-
- assertFalse("Progress bar should not be shown", layout.isProgressBarShown());
- }
-
- @Test
- public void testGetMixins() {
- final SetupWizardLayout layout = new SetupWizardLayout(mContext);
- assertNotNull("SetupWizardLayout should have header mixin",
- layout.getMixin(HeaderMixin.class));
- assertNotNull("SetupWizardLayout should have progress bar mixin",
- layout.getMixin(ProgressBarMixin.class));
- assertNotNull("SetupWizardLayout should have navigation bar mixin",
- layout.getMixin(NavigationBarMixin.class));
- }
-
- private void assertDefaultTemplateInflated(SetupWizardLayout layout) {
- View decorView = layout.findViewById(R.id.suw_layout_decor);
- View navbar = layout.findViewById(R.id.suw_layout_navigation_bar);
- View title = layout.findViewById(R.id.suw_layout_title);
- assertNotNull("@id/suw_layout_decor_view should not be null", decorView);
- assertTrue("@id/suw_layout_navigation_bar should be an instance of NavigationBar",
- navbar instanceof NavigationBar);
- assertNotNull("@id/suw_layout_title should not be null", title);
- }
+ @IdRes private static final int ID1234 = 1234;
+
+ private Context mContext;
+
+ @Before
+ public void setUp() throws Exception {
+ mContext =
+ new ContextThemeWrapper(
+ InstrumentationRegistry.getContext(), R.style.SuwThemeMaterial_Light);
+ }
+
+ @Test
+ public void testDefaultTemplate() {
+ SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ assertDefaultTemplateInflated(layout);
+ }
+
+ @Test
+ public void testSetHeaderText() {
+ SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ TextView title = (TextView) layout.findViewById(R.id.suw_layout_title);
+ layout.setHeaderText("Abracadabra");
+ assertEquals("Header text should be \"Abracadabra\"", "Abracadabra", title.getText());
+ }
+
+ @Test
+ public void testAddView() {
+ SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ TextView tv = new TextView(mContext);
+ tv.setId(R.id.test_view_id);
+ layout.addView(tv);
+ assertDefaultTemplateInflated(layout);
+ View view = layout.findViewById(R.id.test_view_id);
+ assertSame("The view added should be the same text view", tv, view);
+ }
+
+ @Test
+ public void testInflateFromXml() {
+ LayoutInflater inflater = LayoutInflater.from(mContext);
+ SetupWizardLayout layout = (SetupWizardLayout) inflater.inflate(R.layout.test_layout, null);
+ assertDefaultTemplateInflated(layout);
+ View content = layout.findViewById(R.id.test_content);
+ assertTrue("@id/test_content should be a TextView", content instanceof TextView);
+ }
+
+ @Test
+ public void testCustomTemplate() {
+ SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
+ View templateView = layout.findViewById(R.id.test_template_view);
+ assertNotNull("@id/test_template_view should exist in template", templateView);
+
+ TextView tv = new TextView(mContext);
+ tv.setId(R.id.test_view_id);
+ layout.addView(tv);
+
+ templateView = layout.findViewById(R.id.test_template_view);
+ assertNotNull("@id/test_template_view should exist in template", templateView);
+ View contentView = layout.findViewById(R.id.test_view_id);
+ assertSame("The view added should be the same text view", tv, contentView);
+
+ // The following methods should be no-ops because the custom template doesn't contain the
+ // corresponding optional views. Just check that they don't throw exceptions.
+ layout.setHeaderText("Abracadabra");
+ layout.setIllustration(new ColorDrawable(Color.MAGENTA));
+ layout.setLayoutBackground(new ColorDrawable(Color.RED));
+ }
+
+ @Test
+ public void testGetNavigationBar() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ final NavigationBar navigationBar = layout.getNavigationBar();
+ assertEquals(
+ "Navigation bar should have ID = @id/suw_layout_navigation_bar",
+ R.id.suw_layout_navigation_bar,
+ navigationBar.getId());
+ }
+
+ @Test
+ public void testGetNavigationBarNull() {
+ // test_template does not have navigation bar so getNavigationBar() should return null.
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
+ final NavigationBar navigationBar = layout.getNavigationBar();
+ assertNull("getNavigationBar() in test_template should return null", navigationBar);
+ }
+
+ @Test
+ public void testShowProgressBar() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ layout.showProgressBar();
+ assertTrue("Progress bar should be shown", layout.isProgressBarShown());
+ final View progressBar = layout.findViewById(R.id.suw_layout_progress);
+ assertTrue(
+ "Progress bar view should be shown",
+ progressBar instanceof ProgressBar && progressBar.getVisibility() == View.VISIBLE);
+ }
+
+ @Test
+ public void testHideProgressBar() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ layout.showProgressBar();
+ assertTrue("Progress bar should be shown", layout.isProgressBarShown());
+ layout.hideProgressBar();
+ assertFalse("Progress bar should be hidden", layout.isProgressBarShown());
+ final View progressBar = layout.findViewById(R.id.suw_layout_progress);
+ assertTrue(
+ "Progress bar view should exist",
+ progressBar == null || progressBar.getVisibility() != View.VISIBLE);
+ }
+
+ @Test
+ public void testShowProgressBarNotExist() {
+ // test_template does not have progress bar, so showNavigationBar() should do nothing.
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext, R.layout.test_template);
+ layout.showProgressBar();
+ assertFalse("Progress bar should not be shown", layout.isProgressBarShown());
+ }
+
+ @Test
+ public void testNonMaterialTheme() {
+ mContext = new ContextThemeWrapper(InstrumentationRegistry.getContext(), android.R.style.Theme);
+ new SetupWizardLayout(mContext);
+ // Inflating with a non-Material theme should not crash
+ }
+
+ @Test
+ public void testOnRestoreFromInstanceState() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ layout.setId(ID1234);
+
+ SparseArray<Parcelable> container = new SparseArray<>();
+ layout.saveHierarchyState(container);
+
+ final SetupWizardLayout layout2 = new SetupWizardLayout(mContext);
+ layout2.setId(ID1234);
+ layout2.restoreHierarchyState(container);
+
+ assertFalse("Progress bar should not be shown", layout2.isProgressBarShown());
+ }
+
+ @Test
+ public void testOnRestoreFromInstanceStateProgressBarShown() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ layout.setId(ID1234);
+
+ layout.setProgressBarShown(true);
+
+ SparseArray<Parcelable> container = new SparseArray<>();
+ layout.saveHierarchyState(container);
+
+ final SetupWizardLayout layout2 = new SetupWizardLayout(mContext);
+ layout2.setId(ID1234);
+ layout2.restoreHierarchyState(container);
+
+ assertTrue("Progress bar should be shown", layout2.isProgressBarShown());
+ }
+
+ @Test
+ public void testOnRestoreFromIncompatibleInstanceState() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ layout.setId(ID1234);
+
+ SparseArray<Parcelable> container = new SparseArray<>();
+ container.put(1234, AbsSavedState.EMPTY_STATE);
+ layout.restoreHierarchyState(container);
+
+ // SetupWizardLayout shouldn't crash with incompatible Parcelable
+
+ assertFalse("Progress bar should not be shown", layout.isProgressBarShown());
+ }
+
+ @Test
+ public void testGetMixins() {
+ final SetupWizardLayout layout = new SetupWizardLayout(mContext);
+ assertNotNull("SetupWizardLayout should have header mixin", layout.getMixin(HeaderMixin.class));
+ assertNotNull(
+ "SetupWizardLayout should have progress bar mixin",
+ layout.getMixin(ProgressBarMixin.class));
+ assertNotNull(
+ "SetupWizardLayout should have navigation bar mixin",
+ layout.getMixin(NavigationBarMixin.class));
+ }
+
+ private void assertDefaultTemplateInflated(SetupWizardLayout layout) {
+ View decorView = layout.findViewById(R.id.suw_layout_decor);
+ View navbar = layout.findViewById(R.id.suw_layout_navigation_bar);
+ View title = layout.findViewById(R.id.suw_layout_title);
+ assertNotNull("@id/suw_layout_decor_view should not be null", decorView);
+ assertTrue(
+ "@id/suw_layout_navigation_bar should be an instance of NavigationBar",
+ navbar instanceof NavigationBar);
+ assertNotNull("@id/suw_layout_title should not be null", title);
+ }
}