summaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2017-12-13 02:48:52 +0000
committerColin Cross <ccross@android.com>2017-12-13 02:48:52 +0000
commit46216d0e61318e7af168e9e903ef8d943bb49b2e (patch)
tree0a3c2652a2f4641674611a17c5426f8b56ba21f3 /library
parentba1332d1b4dd525a2ef313246482708cb2016052 (diff)
downloadsetupwizard-46216d0e61318e7af168e9e903ef8d943bb49b2e.tar.gz
Revert "Changes needed to upgrade to new gradle version"
This reverts commit ba1332d1b4dd525a2ef313246482708cb2016052. Reason for revert: Broke taimen builds in master Change-Id: Iffffadbacae8c6c69907dcecc447f958cf6ce909
Diffstat (limited to 'library')
-rw-r--r--library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java2
-rw-r--r--library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/ExpandableSwitchItemTest.java3
-rw-r--r--library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java3
-rw-r--r--library/gingerbread/test/robotest/src/com/android/setupwizardlib/util/DimensionConsistencyTest.java3
-rw-r--r--library/lint.xml4
-rw-r--r--library/main/res/values/styles.xml20
-rw-r--r--library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java12
-rw-r--r--library/platform/res/values-v23/styles.xml4
-rw-r--r--library/recyclerview/test/robotest/src/com/android/setupwizardlib/template/RecyclerViewScrollHandlingDelegateTest.java3
-rw-r--r--library/rules.gradle10
-rw-r--r--library/self.gradle25
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/GlifLayoutTest.java2
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/items/ButtonItemTest.java5
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/items/ItemGroupTest.java5
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/robolectric/PatchedGradleManifestFactory.java126
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java29
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/span/LinkSpanTest.java4
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegateTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/util/GlifDimensionTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java2
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/util/WizardManagerHelperTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/view/FillContentLayoutTest.java3
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java2
26 files changed, 233 insertions, 52 deletions
diff --git a/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java b/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java
index d7a3c2e..5172c47 100644
--- a/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java
+++ b/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java
@@ -16,7 +16,6 @@
package com.android.setupwizardlib.view;
-import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff;
@@ -31,7 +30,6 @@ import android.widget.Button;
* Button for navigation bar, which includes tinting of its compound drawables to be used for dark
* and light themes.
*/
-@SuppressLint("AppCompatCustomView")
public class NavigationBarButton extends Button {
public NavigationBarButton(Context context) {
diff --git a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/ExpandableSwitchItemTest.java b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/ExpandableSwitchItemTest.java
index 3020ed3..4fb3e28 100644
--- a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/ExpandableSwitchItemTest.java
+++ b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/ExpandableSwitchItemTest.java
@@ -32,6 +32,7 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -43,7 +44,7 @@ import org.robolectric.annotation.Config;
import java.util.ArrayList;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
public class ExpandableSwitchItemTest {
private TextView mSummaryView;
diff --git a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java
index fa5bbba..d391d80 100644
--- a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java
+++ b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java
@@ -31,6 +31,7 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -39,7 +40,7 @@ import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
public class SwitchItemTest {
private SwitchCompat mSwitch;
diff --git a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/util/DimensionConsistencyTest.java b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/util/DimensionConsistencyTest.java
index 7a08235..43e7f03 100644
--- a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/util/DimensionConsistencyTest.java
+++ b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/util/DimensionConsistencyTest.java
@@ -25,6 +25,7 @@ import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -34,7 +35,7 @@ import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = Config.ALL_SDKS)
+@Config(constants = BuildConfig.class, sdk = Config.ALL_SDKS)
public class DimensionConsistencyTest {
// Visual height of the framework switch widget
diff --git a/library/lint.xml b/library/lint.xml
index 625b20d..ca22c65 100644
--- a/library/lint.xml
+++ b/library/lint.xml
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
- <!-- SUW lib prefixes styleable resources -->
- <issue id="CustomViewStyleable" severity="ignore" />
<issue id="ExtraTranslation" severity="ignore" />
<issue id="GradleDependency" severity="ignore" />
<issue id="MissingTranslation" severity="ignore" />
- <!-- Stop lint from complaining about SDK version checks in the "platform" variant -->
- <issue id="ObsoleteSdkInt" severity="ignore" />
<issue id="RtlEnabled" severity="ignore" />
</lint>
diff --git a/library/main/res/values/styles.xml b/library/main/res/values/styles.xml
index e1e229f..0e7685b 100644
--- a/library/main/res/values/styles.xml
+++ b/library/main/res/values/styles.xml
@@ -32,6 +32,9 @@
<item name="suwScrollIndicators">top|bottom</item>
</style>
+ <!-- Deprecated. Use SuwThemeGlifV2 instead -->
+ <style name="SuwThemeGlifPixel" parent="SuwThemeGlifV2" />
+
<style name="SuwThemeGlifV2.Light" parent="SuwThemeGlif.Light">
<item name="android:colorBackground">@color/suw_glif_background_color_light</item>
<item name="android:windowLightStatusBar" tools:targetApi="m">true</item>
@@ -45,6 +48,9 @@
<item name="suwScrollIndicators">top|bottom</item>
</style>
+ <!-- Deprecated. Use SuwThemeGlifV2.Light instead -->
+ <style name="SuwThemeGlifPixel.Light" parent="SuwThemeGlifV2.Light" />
+
<style name="SuwThemeGlifV3" parent="SuwThemeGlifV2">
<item name="suwButtonColor">@color/suw_glif_v3_footer_button_color</item>
</style>
@@ -88,10 +94,11 @@
<item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">gravity</item>
</style>
- <!-- Ignore UnusedResources: Used by clients -->
- <style name="TextAppearance.SuwDescription.Secondary"
- parent="TextAppearance.SuwDescription"
- tools:ignore="UnusedResources">
+ <style name="TextAppearance.SuwDescription.Light" parent="TextAppearance.SuwDescription">
+ <item name="android:fontFamily" tools:ignore="NewApi">sans-serif-light</item>
+ </style>
+
+ <style name="TextAppearance.SuwDescription.Secondary" parent="TextAppearance.SuwDescription">
<item name="android:textColor">?android:attr/textColorSecondary</item>
</style>
@@ -204,10 +211,7 @@
<item name="android:textAllCaps" tools:targetApi="ice_cream_sandwich">false</item>
</style>
- <!-- Ignore UnusedResources: used by clients -->
- <style name="SuwGlifButton.Tertiary"
- parent="SuwGlifButton.BaseTertiary"
- tools:ignore="UnusedResources" />
+ <style name="SuwGlifButton.Tertiary" parent="SuwGlifButton.BaseTertiary" />
<!-- The start and end paddings are asymmetric because start buttons are borderless buttons
which aligns the text label. -->
diff --git a/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java b/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java
index cf9ddac..f4bb8f5 100644
--- a/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java
+++ b/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java
@@ -80,12 +80,24 @@ public class WizardManagerHelper {
public static final String THEME_GLIF_V2 = "glif_v2";
/**
+ * @deprecated Use {@link #THEME_GLIF_V2} instead.
+ */
+ @Deprecated
+ public static final String THEME_GLIF_PIXEL = THEME_GLIF_V2;
+
+ /**
* Passed in a setup wizard intent as {@link #EXTRA_THEME}. This is the default theme used in
* setup wizard for O DR.
*/
public static final String THEME_GLIF_V2_LIGHT = "glif_v2_light";
/**
+ * @deprecated Use {@link #THEME_GLIF_V2_LIGHT} instead.
+ */
+ @Deprecated
+ public static final String THEME_GLIF_PIXEL_LIGHT = THEME_GLIF_V2_LIGHT;
+
+ /**
* Passed in a setup wizard intent as {@link #EXTRA_THEME}. This is the dark variant of the
* theme used in setup wizard for P.
*/
diff --git a/library/platform/res/values-v23/styles.xml b/library/platform/res/values-v23/styles.xml
index 26ab230..aaccd17 100644
--- a/library/platform/res/values-v23/styles.xml
+++ b/library/platform/res/values-v23/styles.xml
@@ -35,7 +35,7 @@
<item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item>
<item name="android:navigationBarColor">@android:color/black</item>
<item name="android:statusBarColor">@android:color/black</item>
- <item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwItemSummary</item>
+ <item name="android:textAppearanceListItemSmall">@android:style/TextAppearance.Material.Body1</item>
<item name="android:textColorLink">@color/suw_link_color_dark</item>
<item name="android:windowAnimationStyle">@style/Animation.SuwWindowAnimation</item>
<item name="android:windowDisablePreview">true</item>
@@ -65,7 +65,7 @@
<item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item>
<item name="android:navigationBarColor">@android:color/black</item>
<item name="android:statusBarColor">@android:color/black</item>
- <item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwItemSummary</item>
+ <item name="android:textAppearanceListItemSmall">@android:style/TextAppearance.Material.Body1</item>
<item name="android:textColorLink">@color/suw_link_color_light</item>
<item name="android:windowAnimationStyle">@style/Animation.SuwWindowAnimation</item>
<item name="android:windowDisablePreview">true</item>
diff --git a/library/recyclerview/test/robotest/src/com/android/setupwizardlib/template/RecyclerViewScrollHandlingDelegateTest.java b/library/recyclerview/test/robotest/src/com/android/setupwizardlib/template/RecyclerViewScrollHandlingDelegateTest.java
index 5912f7f..b509389 100644
--- a/library/recyclerview/test/robotest/src/com/android/setupwizardlib/template/RecyclerViewScrollHandlingDelegateTest.java
+++ b/library/recyclerview/test/robotest/src/com/android/setupwizardlib/template/RecyclerViewScrollHandlingDelegateTest.java
@@ -27,6 +27,7 @@ import static org.robolectric.RuntimeEnvironment.application;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.OnScrollListener;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Before;
@@ -37,7 +38,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
@RunWith(SuwLibRobolectricTestRunner.class)
public class RecyclerViewScrollHandlingDelegateTest {
diff --git a/library/rules.gradle b/library/rules.gradle
index f5face8..6b0acce 100644
--- a/library/rules.gradle
+++ b/library/rules.gradle
@@ -21,12 +21,9 @@ android {
res.srcDirs = ['main/res']
}
- flavorDimensions 'compat'
-
productFlavors {
// Platform version that will not include the compatibility libraries
platform {
- dimension 'compat'
minSdkVersion 23
dependencies {
@@ -46,17 +43,16 @@ android {
// deps = ['project-name': 'com.example.group:project-name:1.0.0']
// }
//
- platformImplementation deps['support-annotations']
+ platformCompile deps['support-annotations']
}
}
// Provides backwards compatibility for Gingerbread or above, using support libraries.
gingerbreadCompat {
- dimension 'compat'
minSdkVersion 9
dependencies {
- gingerbreadCompatImplementation deps['support-appcompat-v7']
- gingerbreadCompatImplementation deps['support-recyclerview-v7']
+ gingerbreadCompatCompile deps['support-appcompat-v7']
+ gingerbreadCompatCompile deps['support-recyclerview-v7']
}
}
}
diff --git a/library/self.gradle b/library/self.gradle
index a3e5334..69f9654 100644
--- a/library/self.gradle
+++ b/library/self.gradle
@@ -13,12 +13,12 @@ android.sourceSets {
res.srcDirs = ['test/instrumentation/res']
dependencies {
- androidTestImplementation 'com.android.support.test:rules:0.5'
- androidTestImplementation 'com.android.support.test:runner:0.5'
- androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
- androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
- androidTestImplementation 'junit:junit:4.+'
- androidTestImplementation 'org.mockito:mockito-core:1.9.5'
+ androidTestCompile 'com.android.support.test:rules:0.5'
+ androidTestCompile 'com.android.support.test:runner:0.5'
+ androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
+ androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
+ androidTestCompile 'junit:junit:4.+'
+ androidTestCompile 'org.mockito:mockito-core:1.9.5'
}
}
@@ -38,12 +38,12 @@ android.sourceSets {
java.srcDirs = ['test/robotest/src']
dependencies {
- testImplementation 'org.robolectric:robolectric:3.4.2'
- testImplementation 'org.robolectric:framework:3.4.2'
- testImplementation 'junit:junit:4.+'
- testImplementation 'org.mockito:mockito-core:1.9.5'
+ testCompile 'org.robolectric:robolectric:3.4.2'
+ testCompile 'org.robolectric:framework:3.4.2'
+ testCompile 'junit:junit:4.+'
+ testCompile 'org.mockito:mockito-core:1.9.5'
// Workaround for https://github.com/robolectric/robolectric/issues/2566
- testImplementation 'org.khronos:opengl-api:gl1.1-android-2.1_r1'
+ testCompile 'org.khronos:opengl-api:gl1.1-android-2.1_r1'
}
}
@@ -51,9 +51,6 @@ android.sourceSets {
java.srcDirs = ['gingerbread/test/robotest/src', 'recyclerview/test/robotest/src']
}
}
-
-android.testOptions.unitTests.includeAndroidResources = true
-
android.defaultConfig.testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
android.lintOptions {
abortOnError true
diff --git a/library/test/robotest/src/com/android/setupwizardlib/GlifLayoutTest.java b/library/test/robotest/src/com/android/setupwizardlib/GlifLayoutTest.java
index 360dfe2..967a52e 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/GlifLayoutTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/GlifLayoutTest.java
@@ -54,7 +54,7 @@ import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
public class GlifLayoutTest {
private Context mContext;
diff --git a/library/test/robotest/src/com/android/setupwizardlib/items/ButtonItemTest.java b/library/test/robotest/src/com/android/setupwizardlib/items/ButtonItemTest.java
index 40e5da8..93b9a6d 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/items/ButtonItemTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/items/ButtonItemTest.java
@@ -39,6 +39,7 @@ import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.items.ButtonItem.OnClickListener;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -49,7 +50,9 @@ import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(
+ constants = BuildConfig.class,
+ sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
public class ButtonItemTest {
private ViewGroup mParent;
diff --git a/library/test/robotest/src/com/android/setupwizardlib/items/ItemGroupTest.java b/library/test/robotest/src/com/android/setupwizardlib/items/ItemGroupTest.java
index ecaec71..a61b750 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/items/ItemGroupTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/items/ItemGroupTest.java
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Before;
@@ -35,7 +36,9 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(
+ constants = BuildConfig.class,
+ sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
public class ItemGroupTest {
private static final Item CHILD_1 = new EqualsItem("Child 1");
diff --git a/library/test/robotest/src/com/android/setupwizardlib/robolectric/PatchedGradleManifestFactory.java b/library/test/robotest/src/com/android/setupwizardlib/robolectric/PatchedGradleManifestFactory.java
new file mode 100644
index 0000000..64c63e7
--- /dev/null
+++ b/library/test/robotest/src/com/android/setupwizardlib/robolectric/PatchedGradleManifestFactory.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2017 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.setupwizardlib.robolectric;
+
+import org.robolectric.annotation.Config;
+import org.robolectric.internal.GradleManifestFactory;
+import org.robolectric.internal.ManifestIdentifier;
+import org.robolectric.res.FileFsFile;
+import org.robolectric.util.Logger;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * Modified GradleManifestFactory to patch an issue where some build variants have merged
+ * resources under res/merged/variant/type while others have it under bundles/variant/type/res.
+ *
+ * The change is that in the .exists() checks below we check for specific folders for the build
+ * variant rather than checking existence at the parent directory.
+ */
+class PatchedGradleManifestFactory extends GradleManifestFactory {
+
+ @Override
+ public ManifestIdentifier identify(Config config) {
+ if (config.constants() == Void.class) {
+ Logger.error("Field 'constants' not specified in @Config annotation");
+ Logger.error("This is required when using Robolectric with Gradle!");
+ throw new RuntimeException("No 'constants' field in @Config annotation!");
+ }
+
+ final String buildOutputDir = getBuildOutputDir(config);
+ final String type = getType(config);
+ final String flavor = getFlavor(config);
+ final String abiSplit = getAbiSplit(config);
+ final String packageName = config.packageName().isEmpty()
+ ? config.constants().getPackage().getName()
+ : config.packageName();
+
+ final FileFsFile res;
+ final FileFsFile assets;
+ final FileFsFile manifest;
+
+ if (FileFsFile.from(buildOutputDir, "data-binding-layout-out", flavor, type).exists()) {
+ // Android gradle plugin 1.5.0+ puts the merged layouts in data-binding-layout-out.
+ // https://github.com/robolectric/robolectric/issues/2143
+ res = FileFsFile.from(buildOutputDir, "data-binding-layout-out", flavor, type);
+ } else if (FileFsFile.from(buildOutputDir, "res", "merged", flavor, type).exists()) {
+ // res/merged added in Android Gradle plugin 1.3-beta1
+ res = FileFsFile.from(buildOutputDir, "res", "merged", flavor, type);
+ } else if (FileFsFile.from(buildOutputDir, "res", flavor, type).exists()) {
+ res = FileFsFile.from(buildOutputDir, "res", flavor, type);
+ } else {
+ res = FileFsFile.from(buildOutputDir, "bundles", flavor, type, "res");
+ }
+
+ if (FileFsFile.from(buildOutputDir, "assets", flavor, type).exists()) {
+ assets = FileFsFile.from(buildOutputDir, "assets", flavor, type);
+ } else {
+ assets = FileFsFile.from(buildOutputDir, "bundles", flavor, type, "assets");
+ }
+
+ String manifestName = config.manifest();
+ URL manifestUrl = getClass().getClassLoader().getResource(manifestName);
+ if (manifestUrl != null && manifestUrl.getProtocol().equals("file")) {
+ manifest = FileFsFile.from(manifestUrl.getPath());
+ } else if (FileFsFile.from(buildOutputDir, "manifests", "full", flavor, abiSplit, type,
+ manifestName).exists()) {
+ manifest = FileFsFile.from(
+ buildOutputDir, "manifests", "full", flavor, abiSplit, type, manifestName);
+ } else if (FileFsFile.from(buildOutputDir, "manifests", "aapt", flavor, abiSplit, type,
+ manifestName).exists()) {
+ // Android gradle plugin 2.2.0+ can put library manifest files inside of "aapt"
+ // instead of "full"
+ manifest = FileFsFile.from(buildOutputDir, "manifests", "aapt", flavor, abiSplit,
+ type, manifestName);
+ } else {
+ manifest = FileFsFile.from(buildOutputDir, "bundles", flavor, abiSplit, type,
+ manifestName);
+ }
+
+ return new ManifestIdentifier(manifest, res, assets, packageName, null);
+ }
+
+ private static String getBuildOutputDir(Config config) {
+ return config.buildDir() + File.separator + "intermediates";
+ }
+
+ private static String getType(Config config) {
+ try {
+ return ReflectionHelpers.getStaticField(config.constants(), "BUILD_TYPE");
+ } catch (Throwable e) {
+ return null;
+ }
+ }
+
+ private static String getFlavor(Config config) {
+ try {
+ return ReflectionHelpers.getStaticField(config.constants(), "FLAVOR");
+ } catch (Throwable e) {
+ return null;
+ }
+ }
+
+ private static String getAbiSplit(Config config) {
+ try {
+ return config.abiSplit();
+ } catch (Throwable e) {
+ return null;
+ }
+ }
+}
diff --git a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
index 61baa23..509201a 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
@@ -20,13 +20,42 @@ import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.internal.ManifestFactory;
public class SuwLibRobolectricTestRunner extends RobolectricTestRunner {
+ private String mModuleRootPath;
+
public SuwLibRobolectricTestRunner(Class<?> testClass) throws InitializationError {
super(testClass);
}
+ // Hack to determine the module root path in the build folder (e.g. out/gradle/setup-wizard-lib)
+ private void updateModuleRootPath(Config config) {
+ String moduleRoot = config.constants().getResource("").toString()
+ .replace("file:", "").replace("jar:", "");
+ mModuleRootPath =
+ moduleRoot.substring(0, moduleRoot.lastIndexOf("/build")) + "/setup-wizard-lib";
+ }
+
+ /**
+ * Return the default config used to run Robolectric tests.
+ */
+ @Override
+ protected Config buildGlobalConfig() {
+ Config parent = super.buildGlobalConfig();
+ updateModuleRootPath(parent);
+ return new Config.Builder(parent)
+ .setBuildDir(mModuleRootPath + "/build")
+ .build();
+ }
+
+ @Override
+ protected ManifestFactory getManifestFactory(Config config) {
+ return new PatchedGradleManifestFactory();
+ }
+
@Override
protected void runChild(FrameworkMethod method, RunNotifier notifier) {
System.out.println("===== Running " + method + " =====");
diff --git a/library/test/robotest/src/com/android/setupwizardlib/span/LinkSpanTest.java b/library/test/robotest/src/com/android/setupwizardlib/span/LinkSpanTest.java
index fe72e03..f86e057 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/span/LinkSpanTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/span/LinkSpanTest.java
@@ -23,12 +23,15 @@ import android.content.Context;
import android.content.ContextWrapper;
import android.widget.TextView;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
+@Config(constants = BuildConfig.class)
public class LinkSpanTest {
@Test
@@ -65,7 +68,6 @@ public class LinkSpanTest {
assertSame("Clicked LinkSpan should be passed to setup", linkSpan, context.clickedSpan);
}
- @SuppressWarnings("deprecation")
private static class TestContext extends ContextWrapper implements LinkSpan.OnClickListener {
public LinkSpan clickedSpan = null;
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
index ec3622d..fa81dc0 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
@@ -31,6 +31,7 @@ import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Before;
@@ -41,7 +42,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
@RunWith(SuwLibRobolectricTestRunner.class)
public class ListViewScrollHandlingDelegateTest {
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
index c641449..8e39c43 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
@@ -34,6 +34,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.TemplateLayout;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import com.android.setupwizardlib.template.RequireScrollMixin.OnRequireScrollStateChangedListener;
@@ -47,7 +48,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
@RunWith(SuwLibRobolectricTestRunner.class)
public class RequireScrollMixinTest {
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegateTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegateTest.java
index 429445c..f77e256 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegateTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegateTest.java
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.robolectric.RuntimeEnvironment.application;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import com.android.setupwizardlib.view.BottomScrollView;
import com.android.setupwizardlib.view.BottomScrollView.BottomScrollListener;
@@ -35,7 +36,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
+@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
@RunWith(SuwLibRobolectricTestRunner.class)
public class ScrollViewScrollHandlingDelegateTest {
diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/GlifDimensionTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/GlifDimensionTest.java
index c10c122..2be64e1 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/util/GlifDimensionTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/util/GlifDimensionTest.java
@@ -26,6 +26,7 @@ import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -35,7 +36,7 @@ import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = Config.ALL_SDKS)
+@Config(constants = BuildConfig.class, sdk = Config.ALL_SDKS)
public class GlifDimensionTest {
private Context mContext;
diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java
index 3627806..aea2c03 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java
@@ -30,6 +30,7 @@ import android.support.annotation.Nullable;
import android.view.ContextThemeWrapper;
import android.widget.Button;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -40,7 +41,7 @@ import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK})
+@Config(constants = BuildConfig.class, sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK})
public class GlifStyleTest {
private Context mContext;
diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
index 683e40b..aeb678f 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
@@ -37,6 +37,7 @@ import android.content.res.Resources;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import com.android.setupwizardlib.util.Partner.ResourceEntry;
@@ -56,6 +57,7 @@ import java.util.Collections;
@RunWith(SuwLibRobolectricTestRunner.class)
@Config(
+ constants = BuildConfig.class,
sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK },
shadows = ShadowApplicationPackageManager.class)
public class PartnerTest {
diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/WizardManagerHelperTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/WizardManagerHelperTest.java
index 0d15ef4..9195de2 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/util/WizardManagerHelperTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/util/WizardManagerHelperTest.java
@@ -31,6 +31,7 @@ import android.provider.Settings.Global;
import android.provider.Settings.Secure;
import android.support.annotation.StyleRes;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
@@ -43,7 +44,7 @@ import java.util.Arrays;
import java.util.List;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = Config.NEWEST_SDK)
+@Config(constants = BuildConfig.class, sdk = Config.NEWEST_SDK)
public class WizardManagerHelperTest {
@Test
diff --git a/library/test/robotest/src/com/android/setupwizardlib/view/FillContentLayoutTest.java b/library/test/robotest/src/com/android/setupwizardlib/view/FillContentLayoutTest.java
index ae4f3d1..f1332c0 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/view/FillContentLayoutTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/view/FillContentLayoutTest.java
@@ -22,6 +22,7 @@ import static org.robolectric.RuntimeEnvironment.application;
import android.view.View;
import android.view.View.MeasureSpec;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Test;
@@ -30,7 +31,7 @@ import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
-@Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK})
+@Config(constants = BuildConfig.class, sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK})
public class FillContentLayoutTest {
@Test
diff --git a/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java b/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java
index 6db8852..ddf59ca 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java
@@ -31,6 +31,7 @@ import android.os.Build.VERSION_CODES;
import android.support.annotation.RawRes;
import android.view.Surface;
+import com.android.setupwizardlib.BuildConfig;
import com.android.setupwizardlib.R;
import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import com.android.setupwizardlib.view.IllustrationVideoViewTest.ShadowMockMediaPlayer;
@@ -53,6 +54,7 @@ import org.robolectric.util.ReflectionHelpers;
@RunWith(SuwLibRobolectricTestRunner.class)
@Config(
+ constants = BuildConfig.class,
sdk = Config.NEWEST_SDK,
shadows = {
ShadowMockMediaPlayer.class,