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