Commit 21d8581c authored by Noel Gordon's avatar Noel Gordon Committed by Commit Bot

Run FilesApp Providers browsertest with Smb provider feature disabled

The Providers test fixtures run with the Smb provider feature enabled.
However, policy can be used to disable the Smb provider feature and so
we should browser test that case.

Add a test enable/disable for the native Smb provider feature, and run
the Providers tests with the feature enabled and disabled.

Test: browser_tests --gtest_filter="Providers/FilesAppBrowserTest*"
Bug: 879404
Change-Id: I34153efbbbf6a1c5028eb7ec3b61332d7dd45215
Reviewed-on: https://chromium-review.googlesource.com/c/1458398
Commit-Queue: Noel Gordon <noel@chromium.org>
Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630162}
parent 52142089
......@@ -6,12 +6,10 @@
#include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_restrictions.h"
#include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/chrome_features.h"
#include "chromeos/constants/chromeos_switches.h"
#include "components/session_manager/core/session_manager.h"
#include "components/user_manager/user_manager.h"
......@@ -67,6 +65,11 @@ struct TestCase {
return *this;
}
TestCase& DisableNativeSmb() {
enable_native_smb = false;
return *this;
}
TestCase& DontMountVolumes() {
mount_no_volumes = true;
return *this;
......@@ -99,6 +102,9 @@ struct TestCase {
if (test.enable_drivefs.value_or(false))
name.append("_DriveFs");
if (!test.enable_native_smb)
name.append("_DisableNativeSmb");
if (test.enable_myfiles_volume.value_or(false))
name.append("_MyFilesVolume");
......@@ -114,6 +120,7 @@ struct TestCase {
bool with_browser = false;
bool needs_zip = false;
bool offline = false;
bool enable_native_smb = true;
bool mount_no_volumes = false;
};
......@@ -188,12 +195,15 @@ class FilesAppBrowserTest : public FileManagerBrowserTestBase,
bool GetIsOffline() const override { return GetParam().offline; }
bool GetEnableNativeSmb() const override {
return GetParam().enable_native_smb;
}
bool GetStartWithNoVolumesMounted() const override {
return GetParam().mount_no_volumes;
}
private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(FilesAppBrowserTest);
};
......@@ -843,10 +853,15 @@ WRAPPED_INSTANTIATE_TEST_CASE_P(
Providers, /* providers.js */
FilesAppBrowserTest,
::testing::Values(TestCase("requestMount"),
TestCase("requestMount").DisableNativeSmb(),
TestCase("requestMountMultipleMounts"),
TestCase("requestMountMultipleMounts").DisableNativeSmb(),
TestCase("requestMountSourceDevice"),
TestCase("requestMountSourceDevice").DisableNativeSmb(),
TestCase("requestMountSourceFile"),
TestCase("providerEject")));
TestCase("requestMountSourceFile").DisableNativeSmb(),
TestCase("providerEject"),
TestCase("providerEject").DisableNativeSmb()));
WRAPPED_INSTANTIATE_TEST_CASE_P(
GearMenu, /* gear_menu.js */
......
......@@ -1269,10 +1269,16 @@ void FileManagerBrowserTestBase::SetUpCommandLine(
std::vector<base::Feature> enabled_features;
std::vector<base::Feature> disabled_features;
if (!IsGuestModeTest()) {
enabled_features.emplace_back(features::kCrostini);
enabled_features.emplace_back(chromeos::features::kCrostiniFiles);
}
if (!IsNativeSmbTest()) {
disabled_features.emplace_back(features::kNativeSmb);
}
if (IsDriveFsTest()) {
enabled_features.emplace_back(chromeos::features::kDriveFs);
} else {
......@@ -1416,6 +1422,10 @@ bool FileManagerBrowserTestBase::GetIsOffline() const {
return false;
}
bool FileManagerBrowserTestBase::GetEnableNativeSmb() const {
return true;
}
bool FileManagerBrowserTestBase::GetStartWithNoVolumesMounted() const {
return false;
}
......@@ -1837,7 +1847,7 @@ void FileManagerBrowserTestBase::OnCommand(const std::string& name,
}
if (name == "isSmbEnabled") {
*output = IsSmbEnabled() ? "true" : "false";
*output = IsNativeSmbTest() ? "true" : "false";
return;
}
......@@ -1894,8 +1904,4 @@ void FileManagerBrowserTestBase::EnableVirtualKeyboard() {
waiter.EnableVirtualKeyboard();
}
bool FileManagerBrowserTestBase::IsSmbEnabled() const {
return base::FeatureList::IsEnabled(features::kNativeSmb);
}
} // namespace file_manager
......@@ -54,6 +54,7 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest {
virtual bool GetRequiresStartupBrowser() const;
virtual bool GetNeedsZipSupport() const;
virtual bool GetIsOffline() const;
virtual bool GetEnableNativeSmb() const;
virtual bool GetStartWithNoVolumesMounted() const;
// Launches the test extension from GetTestExtensionManifestName() and uses
......@@ -83,6 +84,10 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest {
// Returns true if Drive should act as if offline.
bool IsOfflineTest() const { return GetIsOffline(); }
// Returns true if the test needs a native SMB file system provider.
bool IsNativeSmbTest() const { return GetEnableNativeSmb(); }
// Returns true if FilesApp should start with no volumes mounted.
bool DoesTestStartWithNoVolumesMounted() const {
return GetStartWithNoVolumesMounted();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment