Commit 623ad692 authored by Aya ElAttar's avatar Aya ElAttar Committed by Commit Bot

Refactor MockClipboardDlpController

- Changed MockClipboardDlpController to be
created via unique_ptr instead of calling
Init & Delete in every test.
- This is to be consistent with FakeDlpController
in ClipboardHistory browsertests.

Change-Id: I46a38bababf6b003c8edee5cefbcaf39d29efe15
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2450320
Commit-Queue: Darwin Huang <huangdarwin@chromium.org>
Reviewed-by: default avatarDarwin Huang <huangdarwin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814318}
parent 8ae68f87
...@@ -106,22 +106,14 @@ class ClipboardTest : public PlatformTest { ...@@ -106,22 +106,14 @@ class ClipboardTest : public PlatformTest {
// A mock delegate for testing. // A mock delegate for testing.
class MockClipboardDlpController : public ClipboardDlpController { class MockClipboardDlpController : public ClipboardDlpController {
public: public:
static MockClipboardDlpController* Init(); MockClipboardDlpController();
~MockClipboardDlpController() override;
MOCK_CONST_METHOD2(IsDataReadAllowed, MOCK_CONST_METHOD2(IsDataReadAllowed,
bool(const ClipboardDataEndpoint* const data_src, bool(const ClipboardDataEndpoint* const data_src,
const ClipboardDataEndpoint* const data_dst)); const ClipboardDataEndpoint* const data_dst));
private:
MockClipboardDlpController();
~MockClipboardDlpController() override;
}; };
// static
MockClipboardDlpController* MockClipboardDlpController::Init() {
return new MockClipboardDlpController();
}
MockClipboardDlpController::MockClipboardDlpController() = default; MockClipboardDlpController::MockClipboardDlpController() = default;
MockClipboardDlpController::~MockClipboardDlpController() = default; MockClipboardDlpController::~MockClipboardDlpController() = default;
...@@ -1096,7 +1088,7 @@ TYPED_TEST(ClipboardTest, WriteImageEmptyParams) { ...@@ -1096,7 +1088,7 @@ TYPED_TEST(ClipboardTest, WriteImageEmptyParams) {
// Test that copy/paste would work normally if the dlp controller didn't // Test that copy/paste would work normally if the dlp controller didn't
// restrict the clipboard data. // restrict the clipboard data.
TYPED_TEST(ClipboardTest, DlpAllowDataRead) { TYPED_TEST(ClipboardTest, DlpAllowDataRead) {
auto* dlp_controller = MockClipboardDlpController::Init(); auto dlp_controller = std::make_unique<MockClipboardDlpController>();
const base::string16 kTestText(base::UTF8ToUTF16("World")); const base::string16 kTestText(base::UTF8ToUTF16("World"));
{ {
ScopedClipboardWriter writer( ScopedClipboardWriter writer(
...@@ -1109,15 +1101,14 @@ TYPED_TEST(ClipboardTest, DlpAllowDataRead) { ...@@ -1109,15 +1101,14 @@ TYPED_TEST(ClipboardTest, DlpAllowDataRead) {
base::string16 read_result; base::string16 read_result;
this->clipboard().ReadText(ClipboardBuffer::kCopyPaste, this->clipboard().ReadText(ClipboardBuffer::kCopyPaste,
/* data_dst = */ nullptr, &read_result); /* data_dst = */ nullptr, &read_result);
::testing::Mock::VerifyAndClearExpectations(dlp_controller); ::testing::Mock::VerifyAndClearExpectations(dlp_controller.get());
EXPECT_EQ(kTestText, read_result); EXPECT_EQ(kTestText, read_result);
MockClipboardDlpController::DeleteInstance();
} }
// Test that pasting clipboard data would not work if the dlp controller // Test that pasting clipboard data would not work if the dlp controller
// restricted it. // restricted it.
TYPED_TEST(ClipboardTest, DlpDisallow_ReadText) { TYPED_TEST(ClipboardTest, DlpDisallow_ReadText) {
auto* dlp_controller = MockClipboardDlpController::Init(); auto dlp_controller = std::make_unique<MockClipboardDlpController>();
const base::string16 kTestText(base::UTF8ToUTF16("World")); const base::string16 kTestText(base::UTF8ToUTF16("World"));
{ {
ScopedClipboardWriter writer( ScopedClipboardWriter writer(
...@@ -1130,19 +1121,17 @@ TYPED_TEST(ClipboardTest, DlpDisallow_ReadText) { ...@@ -1130,19 +1121,17 @@ TYPED_TEST(ClipboardTest, DlpDisallow_ReadText) {
base::string16 read_result; base::string16 read_result;
this->clipboard().ReadText(ClipboardBuffer::kCopyPaste, this->clipboard().ReadText(ClipboardBuffer::kCopyPaste,
/* data_dst = */ nullptr, &read_result); /* data_dst = */ nullptr, &read_result);
::testing::Mock::VerifyAndClearExpectations(dlp_controller); ::testing::Mock::VerifyAndClearExpectations(dlp_controller.get());
EXPECT_EQ(base::string16(), read_result); EXPECT_EQ(base::string16(), read_result);
MockClipboardDlpController::DeleteInstance();
} }
TYPED_TEST(ClipboardTest, DlpDisallow_ReadImage) { TYPED_TEST(ClipboardTest, DlpDisallow_ReadImage) {
auto* dlp_controller = MockClipboardDlpController::Init(); auto dlp_controller = std::make_unique<MockClipboardDlpController>();
EXPECT_CALL(*dlp_controller, IsDataReadAllowed) EXPECT_CALL(*dlp_controller, IsDataReadAllowed)
.WillRepeatedly(testing::Return(false)); .WillRepeatedly(testing::Return(false));
const SkBitmap& image = clipboard_test_util::ReadImage(&this->clipboard()); const SkBitmap& image = clipboard_test_util::ReadImage(&this->clipboard());
::testing::Mock::VerifyAndClearExpectations(dlp_controller); ::testing::Mock::VerifyAndClearExpectations(dlp_controller.get());
EXPECT_EQ(true, image.empty()); EXPECT_EQ(true, image.empty());
MockClipboardDlpController::DeleteInstance();
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
......
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