15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/strings/string_number_conversions.h"
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/media_galleries/media_galleries_dialog_controller_mock.h"
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/storage_monitor/storage_info.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk.h"
10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/common/extensions/extension.h"
11558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/common/extensions/extension_test_util.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using ::testing::_;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using ::testing::NiceMock;
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using ::testing::Return;
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using ::testing::ReturnPointee;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using ::testing::ReturnRef;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MediaGalleryPrefInfo MakePrefInfoForTesting(MediaGalleryPrefId id) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleryPrefInfo gallery;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gallery.pref_id = id;
27558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  gallery.device_id = StorageInfo::MakeDeviceId(StorageInfo::FIXED_MASS_STORAGE,
28558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                                                base::Int64ToString(id));
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  gallery.display_name = ASCIIToUTF16("Display Name");
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gallery;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MediaGalleriesDialogTest : public testing::Test {
36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch public:
37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  MediaGalleriesDialogTest() {}
38558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  virtual ~MediaGalleriesDialogTest() {}
39558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  virtual void SetUp() OVERRIDE {
40558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    dummy_extension_ = extension_test_util::CreateExtensionWithID("dummy");
41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
42558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  virtual void TearDown() OVERRIDE {
43558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    dummy_extension_ = NULL;
44558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
45558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
46558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  const extensions::Extension& dummy_extension() const {
47558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    return *dummy_extension_;
48558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
49558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
50558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch private:
51558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  scoped_refptr<extensions::Extension> dummy_extension_;
52558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
53558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(MediaGalleriesDialogTest);
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tests that checkboxes are initialized according to the contents of
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// permissions in the registry.
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(MediaGalleriesDialogTest, InitializeCheckboxes) {
59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  // TODO(gbillock): Get rid of this mock; make something specialized.
60558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension());
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions;
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          MakePrefInfoForTesting(1), true));
66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          MakePrefInfoForTesting(2), false));
69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, AttachedPermissions()).
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(attached_permissions));
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector
73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      unattached_permissions;
74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, UnattachedPermissions()).
75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(unattached_permissions));
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleriesDialogGtk dialog(&controller);
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(2U, dialog.checkbox_map_.size());
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  GtkWidget* checkbox1 = dialog.checkbox_map_[1];
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox1));
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_TRUE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox1)));
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  GtkWidget* checkbox2 = dialog.checkbox_map_[2];
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox2));
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_FALSE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox2)));
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tests that toggling checkboxes updates the controller.
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(MediaGalleriesDialogTest, ToggleCheckboxes) {
91558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension());
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions;
94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(
96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          MakePrefInfoForTesting(1), true));
97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, AttachedPermissions()).
98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(attached_permissions));
99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector
101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      unattached_permissions;
102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, UnattachedPermissions()).
103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(unattached_permissions));
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleriesDialogGtk dialog(&controller);
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(1U, dialog.checkbox_map_.size());
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GtkWidget* checkbox =
108c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      dialog.checkbox_map_[1];
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox));
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_TRUE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox)));
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, DidToggleGalleryId(1, false));
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), FALSE);
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, DidToggleGalleryId(1, true));
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), TRUE);
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tests that UpdateGallery will add a new checkbox, but only if it refers to
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// a gallery that the dialog hasn't seen before.
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(MediaGalleriesDialogTest, UpdateAdds) {
122558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension());
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions;
125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, AttachedPermissions()).
126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(ReturnPointee(&attached_permissions));
127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector
129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      unattached_permissions;
130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, UnattachedPermissions()).
131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(unattached_permissions));
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleriesDialogGtk dialog(&controller);
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_TRUE(dialog.checkbox_map_.empty());
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleryPrefInfo gallery1 = MakePrefInfoForTesting(1);
138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(gallery1, true));
140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.UpdateGallery(gallery1, true);
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(1U, dialog.checkbox_map_.size());
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MediaGalleryPrefInfo gallery2 = MakePrefInfoForTesting(2);
144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(gallery2, true));
146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.UpdateGallery(gallery2, true);
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(2U, dialog.checkbox_map_.size());
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(gallery2, false));
151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.UpdateGallery(gallery2, false);
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(2U, dialog.checkbox_map_.size());
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_F(MediaGalleriesDialogTest, ForgetDeletes) {
156558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension());
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions;
159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, AttachedPermissions()).
160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(ReturnPointee(&attached_permissions));
161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  MediaGalleriesDialogController::GalleryPermissionsVector
163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      unattached_permissions;
164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  EXPECT_CALL(controller, UnattachedPermissions()).
165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      WillRepeatedly(Return(unattached_permissions));
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MediaGalleriesDialogGtk dialog(&controller);
1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_TRUE(dialog.checkbox_map_.empty());
1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MediaGalleryPrefInfo gallery1 = MakePrefInfoForTesting(1);
172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(gallery1, true));
174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.UpdateGallery(gallery1, true);
1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_EQ(1U, dialog.checkbox_map_.size());
1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MediaGalleryPrefInfo gallery2 = MakePrefInfoForTesting(2);
178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.push_back(
179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      MediaGalleriesDialogController::GalleryPermission(gallery2, true));
180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.UpdateGallery(gallery2, true);
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_EQ(2U, dialog.checkbox_map_.size());
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dialog.ForgetGallery(gallery2.pref_id);
184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  attached_permissions.pop_back();
1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_EQ(1U, dialog.checkbox_map_.size());
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
189