Skip to content

Commit 5c157d6

Browse files
authored
Merge branch 'trunk' into feat/CMM-872-support-HE-conversations-and-tickets-logic
2 parents f725bd6 + 2189e63 commit 5c157d6

File tree

22 files changed

+60
-347
lines changed

22 files changed

+60
-347
lines changed

.github/dependabot.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ updates:
2020
# Gutenberg. As such, and as agreed, any update is paused. For more details, see
2121
# https://github.com/wordpress-mobile/WordPress-Android/pull/17936#issuecomment-1553227875
2222
- dependency-name: "com.google.android.exoplayer:exoplayer"
23-
# Bumping 2.26.3 to 2.27.2 will break the mocks. For more details, see
24-
# https://github.com/wiremock/wiremock/issues/1345#issuecomment-656060968
25-
- dependency-name: "com.github.tomakehurst:wiremock"
2623
# List of React Native related dependencies that should be explicitly updated alongside a
2724
# React Native upgrade. For more details, see
2825
# https://github.com/wordpress-mobile/WordPress-Android/pull/18494#issuecomment-1566922244

WordPress/src/androidTest/java/org/wordpress/android/e2e/StatsTests.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ import org.wordpress.android.e2e.pages.MySitesPage
1313
import org.wordpress.android.support.BaseTest
1414
import org.wordpress.android.support.ComposeEspressoLink
1515
import org.wordpress.android.support.WPSupportUtils
16-
import org.wordpress.android.wiremock.WireMockStub
17-
import org.wordpress.android.wiremock.WireMockUrlPath
1816

1917
@HiltAndroidTest
20-
class StatsTests : BaseTest(listOf(WireMockStub(urlPath = WireMockUrlPath.FEATURE_RESPONSE, fileName = "new-stats-feature-response.json"))) {
18+
class StatsTests : BaseTest() {
2119
@Before
2220
fun setUp() {
2321
Assume.assumeTrue(BuildConfig.IS_JETPACK_APP)

WordPress/src/androidTest/java/org/wordpress/android/support/BaseTest.java

Lines changed: 4 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,15 @@
11
package org.wordpress.android.support;
22

3-
import android.app.Instrumentation;
4-
import android.util.Log;
53

6-
import androidx.annotation.Nullable;
4+
import androidx.annotation.NonNull;
75
import androidx.compose.ui.test.junit4.ComposeTestRule;
86
import androidx.test.espresso.accessibility.AccessibilityChecks;
97
import androidx.test.ext.junit.rules.ActivityScenarioRule;
10-
import androidx.test.platform.app.InstrumentationRegistry;
11-
12-
import com.fasterxml.jackson.databind.util.ISO8601Utils;
13-
import com.github.jknack.handlebars.Helper;
14-
import com.github.jknack.handlebars.Options;
15-
import com.github.tomakehurst.wiremock.client.WireMock;
16-
import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
17-
import com.github.tomakehurst.wiremock.extension.responsetemplating.helpers.DateOffset;
18-
import com.github.tomakehurst.wiremock.extension.responsetemplating.helpers.HandlebarsHelper;
19-
import com.github.tomakehurst.wiremock.junit.WireMockRule;
8+
209
import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResult;
2110
import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResult.AccessibilityCheckResultType;
11+
import com.google.gson.internal.bind.util.ISO8601Utils;
2212

23-
import org.apache.commons.lang3.LocaleUtils;
2413
import org.hamcrest.Matcher;
2514
import org.hamcrest.Matchers;
2615
import org.junit.Before;
@@ -31,25 +20,17 @@
3120
import org.wordpress.android.e2e.flows.LoginFlow;
3221
import org.wordpress.android.e2e.pages.MePage;
3322
import org.wordpress.android.e2e.pages.MySitesPage;
34-
import org.wordpress.android.editor.Utils;
35-
import org.wordpress.android.mocks.AndroidNotifier;
36-
import org.wordpress.android.mocks.AssetFileSource;
3723
import org.wordpress.android.rules.RetryTestRule;
3824
import org.wordpress.android.ui.WPLaunchActivity;
39-
import org.wordpress.android.wiremock.WireMockStub;
4025

41-
import java.io.IOException;
4226
import java.text.SimpleDateFormat;
4327
import java.util.Date;
44-
import java.util.HashMap;
45-
import java.util.List;
4628
import java.util.Locale;
4729
import java.util.TimeZone;
4830

4931
import dagger.hilt.android.testing.HiltAndroidRule;
5032

5133
import static androidx.compose.ui.test.junit4.AndroidComposeTestRule_androidKt.createComposeRule;
52-
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
5334
import static com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesTypes;
5435
import static org.hamcrest.Matchers.anyOf;
5536
import static org.hamcrest.Matchers.is;
@@ -60,7 +41,6 @@
6041

6142
public class BaseTest {
6243
static final String TAG = BaseTest.class.getSimpleName();
63-
public static final int WIREMOCK_PORT = 8080;
6444

6545
@Rule(order = 0)
6646
public HiltAndroidRule mHiltRule = new HiltAndroidRule(this);
@@ -76,52 +56,8 @@ public class BaseTest {
7656
= new ActivityScenarioRule<>(WPLaunchActivity.class);
7757

7858
@Rule(order = 4)
79-
public WireMockRule wireMockRule;
80-
81-
@Rule(order = 5)
8259
public RetryTestRule retryTestRule = new RetryTestRule();
8360

84-
public BaseTest() {
85-
this(null);
86-
}
87-
88-
/**
89-
* Constructor
90-
*
91-
* @param wireMockStubs the wiremock stubs to use for this specific test.
92-
*/
93-
public BaseTest(@Nullable final List<WireMockStub> wireMockStubs) {
94-
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
95-
wireMockRule = new WireMockRule(
96-
options().port(WIREMOCK_PORT)
97-
.fileSource(
98-
new AssetFileSource(instrumentation.getContext().getAssets())
99-
)
100-
101-
.extensions(new ResponseTemplateTransformer(true, new HashMap<String, Helper>() {
102-
{
103-
put("fnow", new UnlocalizedDateHelper());
104-
}
105-
}))
106-
.notifier(new AndroidNotifier()));
107-
if (wireMockStubs != null && !wireMockStubs.isEmpty()) {
108-
for (WireMockStub wireMockStub : wireMockStubs) {
109-
try {
110-
final String result = Utils.getStringFromInputStream(
111-
instrumentation.getContext().getClassLoader().getResourceAsStream(
112-
wireMockStub.getFileName()
113-
)
114-
);
115-
// This is where we can stub out
116-
wireMockRule.stubFor(WireMock.get(WireMock.urlPathMatching(wireMockStub.getUrlPath().getPath()))
117-
.willReturn(WireMock.aResponse().withBody(result)));
118-
} catch (final Exception exception) {
119-
Log.e(TAG, "Problem stubbing endpoint", exception);
120-
}
121-
}
122-
}
123-
}
124-
12561
@Before
12662
public void setup() {
12763
Matcher<? super AccessibilityCheckResult> nonErrorLevelMatcher =
@@ -172,27 +108,6 @@ private void wpLogout() {
172108
}
173109
}
174110

175-
class UnlocalizedDateHelper extends HandlebarsHelper<Object> {
176-
@Override public Object apply(Object context, Options options) throws IOException {
177-
String format = options.hash("format", null);
178-
String offset = options.hash("offset", null);
179-
String timezone = options.hash("timezone", null);
180-
String localeCode = options.hash("locale", "en_US_POSIX");
181-
182-
Date date = new Date();
183-
if (offset != null) {
184-
date = new DateOffset(offset).shift(date);
185-
}
186-
187-
Locale locale = Locale.getDefault();
188-
if (localeCode != null) {
189-
locale = LocaleUtils.toLocale(localeCode);
190-
}
191-
192-
return new LocaleAwareRenderableDate(date, format, timezone, locale);
193-
}
194-
}
195-
196111
class LocaleAwareRenderableDate {
197112
private static final long DIVIDE_MILLISECONDS_TO_SECONDS = 1000L;
198113

@@ -208,7 +123,7 @@ class LocaleAwareRenderableDate {
208123
this.mLocale = locale;
209124
}
210125

211-
@Override
126+
@NonNull @Override
212127
public String toString() {
213128
if (mFormat != null) {
214129
if (mFormat.equals("epoch")) {

WordPress/src/androidTest/java/org/wordpress/android/support/MockingInterceptor.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class MockingInterceptor : Interceptor {
1616
val newUrl = request.url.newBuilder()
1717
.scheme("http")
1818
.host("localhost")
19-
.port(BaseTest.WIREMOCK_PORT)
2019
.build()
2120
val newRequest = request.newBuilder()
2221
.url(newUrl)

WordPress/src/androidTest/java/org/wordpress/android/util/StatsMocksReader.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ class StatsMocksReader {
88
MutableList<StatsKeyValueData> {
99
val todayMarker = "{{now format='yyyy-MM-dd'}}"
1010
val readString = this.readAssetsFile("mocks/mappings/wpcom/stats/$fileName.json")
11-
val wireMockJSON = JSONObject(readString)
12-
val arrayRaw = wireMockJSON
11+
val arrayRaw = JSONObject(readString)
1312
.getJSONObject("response")
1413
.getJSONObject("jsonBody")
1514
.getJSONObject("days")

WordPress/src/androidTest/java/org/wordpress/android/wiremock/WireMockStub.kt

Lines changed: 0 additions & 18 deletions
This file was deleted.

WordPress/src/main/java/org/wordpress/android/WordPressDB.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.io.OutputStream;
2323

2424
public class WordPressDB {
25-
private static final int DATABASE_VERSION = 69;
25+
private static final int DATABASE_VERSION = 70;
2626

2727

2828
// Warning renaming DATABASE_NAME could break previous App backups (see: xml/backup_scheme.xml)
@@ -184,6 +184,9 @@ public WordPressDB(Context ctx) {
184184
// so the table creation depended on that screen being opened. Now that we need this table in other
185185
// places, we have to be sure the table exists even if PublicizeListActivity was never opened.
186186
PublicizeTable.createTables(mDb);
187+
case 69:
188+
// add editor theme styles site setting
189+
mDb.execSQL(SiteSettingsModel.ADD_USE_THEME_STYLES);
187190
}
188191
mDb.setVersion(DATABASE_VERSION);
189192
}

WordPress/src/main/java/org/wordpress/android/models/SiteSettingsModel.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public class SiteSettingsModel {
6969
private static final String AMP_ENABLED_COLUMN_NAME = "ampEnabled";
7070
private static final String JETPACK_SEARCH_SUPPORTED_COLUMN_NAME = "jetpackSearchSupported";
7171
private static final String JETPACK_SEARCH_ENABLED_COLUMN_NAME = "jetpackSearchEnabled";
72+
private static final String USE_THEME_STYLES_COLUMN_NAME = "useThemeStyles";
7273

7374
public static final String SETTINGS_TABLE_NAME = "site_settings";
7475

@@ -104,6 +105,8 @@ public class SiteSettingsModel {
104105
+ " add " + JETPACK_SEARCH_SUPPORTED_COLUMN_NAME + " BOOLEAN;";
105106
public static final String ADD_SITE_ICON = "alter table " + SETTINGS_TABLE_NAME
106107
+ " add " + SITE_ICON_COLUMN_NAME + " INTEGER;";
108+
public static final String ADD_USE_THEME_STYLES = "alter table " + SETTINGS_TABLE_NAME
109+
+ " add " + USE_THEME_STYLES_COLUMN_NAME + " BOOLEAN DEFAULT 1;";
107110

108111
public static final String CREATE_SETTINGS_TABLE_SQL =
109112
"CREATE TABLE IF NOT EXISTS "
@@ -194,6 +197,7 @@ public class SiteSettingsModel {
194197
public boolean ampEnabled;
195198
public boolean jetpackSearchSupported;
196199
public boolean jetpackSearchEnabled;
200+
public boolean useThemeStyles = true;
197201
public String quotaDiskSpace;
198202

199203
@Override
@@ -238,6 +242,7 @@ && equals(timezone, otherModel.timezone)
238242
&& ampSupported == otherModel.ampSupported
239243
&& jetpackSearchEnabled == otherModel.jetpackSearchEnabled
240244
&& jetpackSearchSupported == otherModel.jetpackSearchSupported
245+
&& useThemeStyles == otherModel.useThemeStyles
241246
&& maxLinks == otherModel.maxLinks
242247
&& equals(defaultPostFormat, otherModel.defaultPostFormat)
243248
&& holdForModeration != null
@@ -303,6 +308,7 @@ public void copyFrom(SiteSettingsModel other) {
303308
ampEnabled = other.ampEnabled;
304309
jetpackSearchSupported = other.jetpackSearchSupported;
305310
jetpackSearchEnabled = other.jetpackSearchEnabled;
311+
useThemeStyles = other.useThemeStyles;
306312
if (other.holdForModeration != null) {
307313
holdForModeration = new ArrayList<>(other.holdForModeration);
308314
}
@@ -367,6 +373,7 @@ public void deserializeOptionsDatabaseCursor(Cursor cursor, SparseArrayCompat<Ca
367373
ampEnabled = getBooleanFromCursor(cursor, AMP_ENABLED_COLUMN_NAME);
368374
jetpackSearchSupported = getBooleanFromCursor(cursor, JETPACK_SEARCH_SUPPORTED_COLUMN_NAME);
369375
jetpackSearchEnabled = getBooleanFromCursor(cursor, JETPACK_SEARCH_ENABLED_COLUMN_NAME);
376+
useThemeStyles = getBooleanFromCursor(cursor, USE_THEME_STYLES_COLUMN_NAME);
370377

371378
String moderationKeys = getStringFromCursor(cursor, MODERATION_KEYS_COLUMN_NAME);
372379
String denylistKeys = getStringFromCursor(cursor, DENYLIST_KEYS_COLUMN_NAME);
@@ -459,6 +466,7 @@ public ContentValues serializeToDatabase() {
459466
values.put(AMP_ENABLED_COLUMN_NAME, ampEnabled);
460467
values.put(JETPACK_SEARCH_SUPPORTED_COLUMN_NAME, jetpackSearchSupported);
461468
values.put(JETPACK_SEARCH_ENABLED_COLUMN_NAME, jetpackSearchEnabled);
469+
values.put(USE_THEME_STYLES_COLUMN_NAME, useThemeStyles);
462470

463471
StringBuilder moderationKeys = new StringBuilder();
464472
if (holdForModeration != null) {

WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitActivity.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,8 @@ import org.wordpress.android.ui.posts.reactnative.ReactNativeRequestHandler
171171
import org.wordpress.android.ui.posts.sharemessage.EditJetpackSocialShareMessageActivity
172172
import org.wordpress.android.ui.posts.sharemessage.EditJetpackSocialShareMessageActivity.Companion.createIntent
173173
import org.wordpress.android.ui.prefs.AppPrefs
174-
import org.wordpress.android.ui.prefs.experimentalfeatures.ExperimentalFeatures.Feature
175174
import org.wordpress.android.ui.prefs.SiteSettingsInterface
176175
import org.wordpress.android.ui.prefs.SiteSettingsInterface.SiteSettingsListener
177-
import org.wordpress.android.ui.prefs.experimentalfeatures.ExperimentalFeatures
178176
import org.wordpress.android.ui.reader.utils.ReaderUtilsWrapper
179177
import org.wordpress.android.ui.suggestion.SuggestionActivity
180178
import org.wordpress.android.ui.suggestion.SuggestionType
@@ -210,7 +208,6 @@ import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
210208
import org.wordpress.android.util.analytics.AnalyticsUtils
211209
import org.wordpress.android.util.analytics.AnalyticsUtils.BlockEditorEnabledSource
212210
import org.wordpress.android.util.config.ContactSupportFeatureConfig
213-
import org.wordpress.android.util.config.GutenbergKitFeature
214211
import org.wordpress.android.util.config.GutenbergKitPluginsFeature
215212
import org.wordpress.android.util.config.PostConflictResolutionFeatureConfig
216213
import org.wordpress.android.util.extensions.setLiftOnScrollTargetViewIdAndRequestLayout
@@ -380,9 +377,7 @@ class GutenbergKitActivity : BaseAppCompatActivity(), EditorImageSettingsListene
380377

381378
@Inject lateinit var postConflictResolutionFeatureConfig: PostConflictResolutionFeatureConfig
382379

383-
@Inject lateinit var gutenbergKitFeature: GutenbergKitFeature
384380
@Inject lateinit var gutenbergKitPluginsFeature: GutenbergKitPluginsFeature
385-
@Inject lateinit var experimentalFeatures: ExperimentalFeatures
386381

387382
@Inject lateinit var activityNavigator: ActivityNavigator
388383

@@ -2309,9 +2304,7 @@ class GutenbergKitActivity : BaseAppCompatActivity(), EditorImageSettingsListene
23092304

23102305
val featureConfig = GutenbergKitSettingsBuilder.FeatureConfig(
23112306
isPluginsFeatureEnabled = gutenbergKitPluginsFeature.isEnabled(),
2312-
isThemeStylesFeatureEnabled = experimentalFeatures.isEnabled(
2313-
Feature.EXPERIMENTAL_BLOCK_EDITOR_THEME_STYLES
2314-
)
2307+
isThemeStylesFeatureEnabled = siteSettings?.useThemeStyles ?: true
23152308
)
23162309

23172310
val appConfig = GutenbergKitSettingsBuilder.AppConfig(

WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitWarmupHelper.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import org.wordpress.android.fluxc.model.SiteModel
88
import org.wordpress.android.fluxc.network.UserAgent
99
import org.wordpress.android.fluxc.store.AccountStore
1010
import org.wordpress.android.modules.BG_THREAD
11-
import org.wordpress.android.ui.prefs.experimentalfeatures.ExperimentalFeatures
12-
import org.wordpress.android.ui.prefs.experimentalfeatures.ExperimentalFeatures.Feature
1311
import org.wordpress.android.util.AppLog
1412
import org.wordpress.android.util.AppLog.T
1513
import org.wordpress.android.util.PerAppLocaleManager
@@ -33,7 +31,6 @@ class GutenbergKitWarmupHelper @Inject constructor(
3331
private val perAppLocaleManager: PerAppLocaleManager,
3432
private val gutenbergKitFeatureChecker: GutenbergKitFeatureChecker,
3533
private val gutenbergKitPluginsFeature: GutenbergKitPluginsFeature,
36-
private val experimentalFeatures: ExperimentalFeatures,
3734
@Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher
3835
) {
3936
private var lastWarmedUpSiteId: Long? = null
@@ -141,9 +138,8 @@ class GutenbergKitWarmupHelper @Inject constructor(
141138

142139
val featureConfig = GutenbergKitSettingsBuilder.FeatureConfig(
143140
isPluginsFeatureEnabled = gutenbergKitPluginsFeature.isEnabled(),
144-
isThemeStylesFeatureEnabled = experimentalFeatures.isEnabled(
145-
Feature.EXPERIMENTAL_BLOCK_EDITOR_THEME_STYLES
146-
)
141+
// Default to true during warmup; actual value will be used when editor launches
142+
isThemeStylesFeatureEnabled = true
147143
)
148144

149145
val settings = GutenbergKitSettingsBuilder.buildSettings(

0 commit comments

Comments
 (0)