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 @@ ...@@ -6,12 +6,10 @@
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_restrictions.h" #include "base/threading/thread_restrictions.h"
#include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h" #include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/chrome_features.h"
#include "chromeos/constants/chromeos_switches.h" #include "chromeos/constants/chromeos_switches.h"
#include "components/session_manager/core/session_manager.h" #include "components/session_manager/core/session_manager.h"
#include "components/user_manager/user_manager.h" #include "components/user_manager/user_manager.h"
...@@ -67,6 +65,11 @@ struct TestCase { ...@@ -67,6 +65,11 @@ struct TestCase {
return *this; return *this;
} }
TestCase& DisableNativeSmb() {
enable_native_smb = false;
return *this;
}
TestCase& DontMountVolumes() { TestCase& DontMountVolumes() {
mount_no_volumes = true; mount_no_volumes = true;
return *this; return *this;
...@@ -99,6 +102,9 @@ struct TestCase { ...@@ -99,6 +102,9 @@ struct TestCase {
if (test.enable_drivefs.value_or(false)) if (test.enable_drivefs.value_or(false))
name.append("_DriveFs"); name.append("_DriveFs");
if (!test.enable_native_smb)
name.append("_DisableNativeSmb");
if (test.enable_myfiles_volume.value_or(false)) if (test.enable_myfiles_volume.value_or(false))
name.append("_MyFilesVolume"); name.append("_MyFilesVolume");
...@@ -114,6 +120,7 @@ struct TestCase { ...@@ -114,6 +120,7 @@ struct TestCase {
bool with_browser = false; bool with_browser = false;
bool needs_zip = false; bool needs_zip = false;
bool offline = false; bool offline = false;
bool enable_native_smb = true;
bool mount_no_volumes = false; bool mount_no_volumes = false;
}; };
...@@ -188,12 +195,15 @@ class FilesAppBrowserTest : public FileManagerBrowserTestBase, ...@@ -188,12 +195,15 @@ class FilesAppBrowserTest : public FileManagerBrowserTestBase,
bool GetIsOffline() const override { return GetParam().offline; } bool GetIsOffline() const override { return GetParam().offline; }
bool GetEnableNativeSmb() const override {
return GetParam().enable_native_smb;
}
bool GetStartWithNoVolumesMounted() const override { bool GetStartWithNoVolumesMounted() const override {
return GetParam().mount_no_volumes; return GetParam().mount_no_volumes;
} }
private: private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(FilesAppBrowserTest); DISALLOW_COPY_AND_ASSIGN(FilesAppBrowserTest);
}; };
...@@ -843,10 +853,15 @@ WRAPPED_INSTANTIATE_TEST_CASE_P( ...@@ -843,10 +853,15 @@ WRAPPED_INSTANTIATE_TEST_CASE_P(
Providers, /* providers.js */ Providers, /* providers.js */
FilesAppBrowserTest, FilesAppBrowserTest,
::testing::Values(TestCase("requestMount"), ::testing::Values(TestCase("requestMount"),
TestCase("requestMount").DisableNativeSmb(),
TestCase("requestMountMultipleMounts"), TestCase("requestMountMultipleMounts"),
TestCase("requestMountMultipleMounts").DisableNativeSmb(),
TestCase("requestMountSourceDevice"), TestCase("requestMountSourceDevice"),
TestCase("requestMountSourceDevice").DisableNativeSmb(),
TestCase("requestMountSourceFile"), TestCase("requestMountSourceFile"),
TestCase("providerEject"))); TestCase("requestMountSourceFile").DisableNativeSmb(),
TestCase("providerEject"),
TestCase("providerEject").DisableNativeSmb()));
WRAPPED_INSTANTIATE_TEST_CASE_P( WRAPPED_INSTANTIATE_TEST_CASE_P(
GearMenu, /* gear_menu.js */ GearMenu, /* gear_menu.js */
......
...@@ -1269,10 +1269,16 @@ void FileManagerBrowserTestBase::SetUpCommandLine( ...@@ -1269,10 +1269,16 @@ void FileManagerBrowserTestBase::SetUpCommandLine(
std::vector<base::Feature> enabled_features; std::vector<base::Feature> enabled_features;
std::vector<base::Feature> disabled_features; std::vector<base::Feature> disabled_features;
if (!IsGuestModeTest()) { if (!IsGuestModeTest()) {
enabled_features.emplace_back(features::kCrostini); enabled_features.emplace_back(features::kCrostini);
enabled_features.emplace_back(chromeos::features::kCrostiniFiles); enabled_features.emplace_back(chromeos::features::kCrostiniFiles);
} }
if (!IsNativeSmbTest()) {
disabled_features.emplace_back(features::kNativeSmb);
}
if (IsDriveFsTest()) { if (IsDriveFsTest()) {
enabled_features.emplace_back(chromeos::features::kDriveFs); enabled_features.emplace_back(chromeos::features::kDriveFs);
} else { } else {
...@@ -1416,6 +1422,10 @@ bool FileManagerBrowserTestBase::GetIsOffline() const { ...@@ -1416,6 +1422,10 @@ bool FileManagerBrowserTestBase::GetIsOffline() const {
return false; return false;
} }
bool FileManagerBrowserTestBase::GetEnableNativeSmb() const {
return true;
}
bool FileManagerBrowserTestBase::GetStartWithNoVolumesMounted() const { bool FileManagerBrowserTestBase::GetStartWithNoVolumesMounted() const {
return false; return false;
} }
...@@ -1837,7 +1847,7 @@ void FileManagerBrowserTestBase::OnCommand(const std::string& name, ...@@ -1837,7 +1847,7 @@ void FileManagerBrowserTestBase::OnCommand(const std::string& name,
} }
if (name == "isSmbEnabled") { if (name == "isSmbEnabled") {
*output = IsSmbEnabled() ? "true" : "false"; *output = IsNativeSmbTest() ? "true" : "false";
return; return;
} }
...@@ -1894,8 +1904,4 @@ void FileManagerBrowserTestBase::EnableVirtualKeyboard() { ...@@ -1894,8 +1904,4 @@ void FileManagerBrowserTestBase::EnableVirtualKeyboard() {
waiter.EnableVirtualKeyboard(); waiter.EnableVirtualKeyboard();
} }
bool FileManagerBrowserTestBase::IsSmbEnabled() const {
return base::FeatureList::IsEnabled(features::kNativeSmb);
}
} // namespace file_manager } // namespace file_manager
...@@ -54,6 +54,7 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest { ...@@ -54,6 +54,7 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest {
virtual bool GetRequiresStartupBrowser() const; virtual bool GetRequiresStartupBrowser() const;
virtual bool GetNeedsZipSupport() const; virtual bool GetNeedsZipSupport() const;
virtual bool GetIsOffline() const; virtual bool GetIsOffline() const;
virtual bool GetEnableNativeSmb() const;
virtual bool GetStartWithNoVolumesMounted() const; virtual bool GetStartWithNoVolumesMounted() const;
// Launches the test extension from GetTestExtensionManifestName() and uses // Launches the test extension from GetTestExtensionManifestName() and uses
...@@ -83,6 +84,10 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest { ...@@ -83,6 +84,10 @@ class FileManagerBrowserTestBase : public extensions::ExtensionApiTest {
// Returns true if Drive should act as if offline. // Returns true if Drive should act as if offline.
bool IsOfflineTest() const { return GetIsOffline(); } 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 { bool DoesTestStartWithNoVolumesMounted() const {
return GetStartWithNoVolumesMounted(); 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