Skip to content

Commit 6365dac

Browse files
committedMar 21, 2025··
Uplift of #27982 (squashed) to release
1 parent 6d6ca1d commit 6365dac

File tree

3 files changed

+111
-0
lines changed

3 files changed

+111
-0
lines changed
 

‎android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment
7575
private static final String PREF_PAYMENT_METHODS = "autofill_payment_methods";
7676
private static final String PREF_ADDRESSES = "autofill_addresses";
7777
private static final String PREF_AUTOFILL_PRIVATE_WINDOW = "autofill_private_window";
78+
private static final String PREF_TABS = "tabs";
7879
private static final String PREF_MEDIA = "media";
7980
private static final String PREF_APPEARANCE = "appearance";
8081
private static final String PREF_NEW_TAB_PAGE = "background_images";
@@ -326,6 +327,7 @@ private void rearrangePreferenceOrders() {
326327
int displaySectionOrder = generalOrder;
327328
findPreference(PREF_DISPLAY_SECTION).setOrder(++displaySectionOrder);
328329

330+
findPreference(PREF_TABS).setOrder(++displaySectionOrder);
329331
findPreference(PREF_MEDIA).setOrder(++displaySectionOrder);
330332
findPreference(PREF_APPEARANCE).setOrder(++displaySectionOrder);
331333
findPreference(PREF_NEW_TAB_PAGE).setOrder(++displaySectionOrder);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/* Copyright (c) 2025 The Brave Authors. All rights reserved.
2+
* This Source Code Form is subject to the terms of the Mozilla Public
3+
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
4+
* You can obtain one at https://mozilla.org/MPL/2.0/. */
5+
6+
package org.chromium.chrome.browser.settings;
7+
8+
import static org.junit.Assert.assertTrue;
9+
10+
import android.os.Looper;
11+
12+
import androidx.annotation.Nullable;
13+
import androidx.preference.Preference;
14+
import androidx.test.filters.SmallTest;
15+
16+
import org.junit.After;
17+
import org.junit.Assert;
18+
import org.junit.Before;
19+
import org.junit.Test;
20+
import org.junit.runner.RunWith;
21+
22+
import org.chromium.base.test.util.DoNotBatch;
23+
import org.chromium.chrome.browser.tracing.settings.DeveloperSettings;
24+
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
25+
26+
/** Test for {@link MainSettings}. Main purpose is to have a quick confidence check on the xml. */
27+
@RunWith(ChromeJUnit4ClassRunner.class)
28+
@DoNotBatch(reason = "Tests cannot run batched because they launch a Settings activity.")
29+
public class BraveMainSettingsFragmentTest {
30+
private final SettingsActivityTestRule<MainSettings> mSettingsActivityTestRule =
31+
new SettingsActivityTestRule<>(MainSettings.class);
32+
private MainSettings mMainSettings;
33+
34+
@Before
35+
public void setup() {
36+
Looper.prepare();
37+
DeveloperSettings.setIsEnabledForTests(true);
38+
}
39+
40+
@After
41+
public void tearDown() {}
42+
43+
private static final String[] sSortedPrefKeys = {
44+
"features_section",
45+
"brave_shields_and_privacy",
46+
"brave_news_v2",
47+
"brave_wallet",
48+
"brave_vpn",
49+
"brave_leo",
50+
"general_section",
51+
"brave_search_engines",
52+
"homepage",
53+
"passwords",
54+
"brave_sync_layout",
55+
"brave_stats",
56+
"content_settings",
57+
"brave_downloads",
58+
"closing_all_tabs_closes_brave",
59+
"use_custom_tabs",
60+
"display_section",
61+
"tabs",
62+
"media",
63+
"appearance",
64+
"background_images",
65+
"accessibility",
66+
"brave_languages",
67+
// Somehow this is the key for Autofill section
68+
"online_checkout_section",
69+
"autofill_payment_methods",
70+
"autofill_addresses",
71+
"autofill_private_window",
72+
"support_section",
73+
"rate_brave",
74+
"about_section",
75+
"developer",
76+
"about_chrome"
77+
};
78+
79+
// This test is intended to check the issue where prefs order was wrong
80+
// when app language was switched to some other than default English,
81+
// like French. The test infrastructure does not support switching app
82+
// interface language. So the test may help to catch order violation
83+
// with English.
84+
@Test
85+
@SmallTest
86+
public void testMainSettingsPrefsOrder() {
87+
startSettings();
88+
89+
@Nullable Preference prevPref = null;
90+
for (int i = 0; i < sSortedPrefKeys.length; ++i) {
91+
Preference pref = mMainSettings.findPreference(sSortedPrefKeys[i]);
92+
93+
if (prevPref == null) { // Skip first pref.
94+
prevPref = pref;
95+
continue;
96+
}
97+
assertTrue(
98+
prevPref.getTitle() + " should precede " + pref.getTitle(),
99+
pref.getOrder() > prevPref.getOrder());
100+
}
101+
}
102+
103+
private void startSettings() {
104+
mSettingsActivityTestRule.startSettingsActivity();
105+
mMainSettings = mSettingsActivityTestRule.getFragment();
106+
Assert.assertNotNull("SettingsActivity failed to launch.", mMainSettings);
107+
}
108+
}

‎test/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -1275,6 +1275,7 @@ if (is_android) {
12751275
"//brave/android/javatests/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsTest.java",
12761276
"//brave/android/javatests/org/chromium/chrome/browser/safe_browsing/settings/BraveSafeBrowsingSettingsFragmentTest.java",
12771277
"//brave/android/javatests/org/chromium/chrome/browser/safety_check/BraveSafetyCheckSettingsFragmentTest.java",
1278+
"//brave/android/javatests/org/chromium/chrome/browser/settings/BraveMainSettingsFragmentTest.java",
12781279
"//brave/android/javatests/org/chromium/chrome/browser/sync/BraveManageSyncSettingsTest.java",
12791280
]
12801281

0 commit comments

Comments
 (0)
Please sign in to comment.