| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // TODO(rickcam): Bug 73183: Add unit tests for image loading | 5 // TODO(rickcam): Bug 73183: Add unit tests for image loading |
| 6 | 6 |
| 7 #include <cstdlib> | 7 #include <cstdlib> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "chrome/browser/background/background_application_list_model.h" | 10 #include "chrome/browser/background/background_application_list_model.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 service->AddExtension(bgapp2.get()); | 220 service->AddExtension(bgapp2.get()); |
| 221 ASSERT_EQ(4U, service->extensions()->size()); | 221 ASSERT_EQ(4U, service->extensions()->size()); |
| 222 ASSERT_EQ(2U, model->size()); | 222 ASSERT_EQ(2U, model->size()); |
| 223 ASSERT_FALSE(IsBackgroundApp(*ext3.get())); | 223 ASSERT_FALSE(IsBackgroundApp(*ext3.get())); |
| 224 service->AddExtension(ext3.get()); | 224 service->AddExtension(ext3.get()); |
| 225 ASSERT_EQ(5U, service->extensions()->size()); | 225 ASSERT_EQ(5U, service->extensions()->size()); |
| 226 ASSERT_EQ(2U, model->size()); | 226 ASSERT_EQ(2U, model->size()); |
| 227 | 227 |
| 228 // Remove in FIFO order. | 228 // Remove in FIFO order. |
| 229 ASSERT_FALSE(IsBackgroundApp(*ext1.get())); | 229 ASSERT_FALSE(IsBackgroundApp(*ext1.get())); |
| 230 service->UninstallExtension( | 230 service->UninstallExtension(ext1->id(), |
| 231 ext1->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 231 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 232 base::Bind(&base::DoNothing), |
| 233 NULL); |
| 232 ASSERT_EQ(4U, service->extensions()->size()); | 234 ASSERT_EQ(4U, service->extensions()->size()); |
| 233 ASSERT_EQ(2U, model->size()); | 235 ASSERT_EQ(2U, model->size()); |
| 234 ASSERT_TRUE(IsBackgroundApp(*bgapp1.get())); | 236 ASSERT_TRUE(IsBackgroundApp(*bgapp1.get())); |
| 235 service->UninstallExtension( | 237 service->UninstallExtension(bgapp1->id(), |
| 236 bgapp1->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 238 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 239 base::Bind(&base::DoNothing), |
| 240 NULL); |
| 237 ASSERT_EQ(3U, service->extensions()->size()); | 241 ASSERT_EQ(3U, service->extensions()->size()); |
| 238 ASSERT_EQ(1U, model->size()); | 242 ASSERT_EQ(1U, model->size()); |
| 239 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); | 243 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); |
| 240 service->UninstallExtension( | 244 service->UninstallExtension(ext2->id(), |
| 241 ext2->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 245 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 246 base::Bind(&base::DoNothing), |
| 247 NULL); |
| 242 ASSERT_EQ(2U, service->extensions()->size()); | 248 ASSERT_EQ(2U, service->extensions()->size()); |
| 243 ASSERT_EQ(1U, model->size()); | 249 ASSERT_EQ(1U, model->size()); |
| 244 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); | 250 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); |
| 245 service->UninstallExtension( | 251 service->UninstallExtension(bgapp2->id(), |
| 246 bgapp2->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 252 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 253 base::Bind(&base::DoNothing), |
| 254 NULL); |
| 247 ASSERT_EQ(1U, service->extensions()->size()); | 255 ASSERT_EQ(1U, service->extensions()->size()); |
| 248 ASSERT_EQ(0U, model->size()); | 256 ASSERT_EQ(0U, model->size()); |
| 249 ASSERT_FALSE(IsBackgroundApp(*ext3.get())); | 257 ASSERT_FALSE(IsBackgroundApp(*ext3.get())); |
| 250 service->UninstallExtension( | 258 service->UninstallExtension(ext3->id(), |
| 251 ext3->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 259 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 260 base::Bind(&base::DoNothing), |
| 261 NULL); |
| 252 ASSERT_EQ(0U, service->extensions()->size()); | 262 ASSERT_EQ(0U, service->extensions()->size()); |
| 253 ASSERT_EQ(0U, model->size()); | 263 ASSERT_EQ(0U, model->size()); |
| 254 } | 264 } |
| 255 | 265 |
| 256 // Verifies that pushMessaging also triggers background detection, except | 266 // Verifies that pushMessaging also triggers background detection, except |
| 257 // when extension is in a whitelist. | 267 // when extension is in a whitelist. |
| 258 TEST_F(BackgroundApplicationListModelTest, PushMessagingTest) { | 268 TEST_F(BackgroundApplicationListModelTest, PushMessagingTest) { |
| 259 InitializeAndLoadEmptyExtensionService(); | 269 InitializeAndLoadEmptyExtensionService(); |
| 260 ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())-> | 270 ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())-> |
| 261 extension_service(); | 271 extension_service(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 292 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); | 302 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); |
| 293 service->AddExtension(ext2.get()); | 303 service->AddExtension(ext2.get()); |
| 294 ASSERT_EQ(3U, service->extensions()->size()); | 304 ASSERT_EQ(3U, service->extensions()->size()); |
| 295 ASSERT_EQ(1U, model->size()); | 305 ASSERT_EQ(1U, model->size()); |
| 296 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); | 306 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); |
| 297 service->AddExtension(bgapp2.get()); | 307 service->AddExtension(bgapp2.get()); |
| 298 ASSERT_EQ(4U, service->extensions()->size()); | 308 ASSERT_EQ(4U, service->extensions()->size()); |
| 299 ASSERT_EQ(2U, model->size()); | 309 ASSERT_EQ(2U, model->size()); |
| 300 // Need to remove ext2 because it uses same id as bgapp3. | 310 // Need to remove ext2 because it uses same id as bgapp3. |
| 301 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); | 311 ASSERT_FALSE(IsBackgroundApp(*ext2.get())); |
| 302 service->UninstallExtension( | 312 service->UninstallExtension(ext2->id(), |
| 303 ext2->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 313 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 314 base::Bind(&base::DoNothing), |
| 315 NULL); |
| 304 ASSERT_EQ(3U, service->extensions()->size()); | 316 ASSERT_EQ(3U, service->extensions()->size()); |
| 305 ASSERT_EQ(2U, model->size()); | 317 ASSERT_EQ(2U, model->size()); |
| 306 ASSERT_TRUE(IsBackgroundApp(*bgapp3.get())); | 318 ASSERT_TRUE(IsBackgroundApp(*bgapp3.get())); |
| 307 service->AddExtension(bgapp3.get()); | 319 service->AddExtension(bgapp3.get()); |
| 308 ASSERT_EQ(4U, service->extensions()->size()); | 320 ASSERT_EQ(4U, service->extensions()->size()); |
| 309 ASSERT_EQ(3U, model->size()); | 321 ASSERT_EQ(3U, model->size()); |
| 310 | 322 |
| 311 // Remove in FIFO order. | 323 // Remove in FIFO order. |
| 312 ASSERT_FALSE(IsBackgroundApp(*ext1.get())); | 324 ASSERT_FALSE(IsBackgroundApp(*ext1.get())); |
| 313 service->UninstallExtension( | 325 service->UninstallExtension(ext1->id(), |
| 314 ext1->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 326 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 327 base::Bind(&base::DoNothing), |
| 328 NULL); |
| 315 ASSERT_EQ(3U, service->extensions()->size()); | 329 ASSERT_EQ(3U, service->extensions()->size()); |
| 316 ASSERT_EQ(3U, model->size()); | 330 ASSERT_EQ(3U, model->size()); |
| 317 ASSERT_TRUE(IsBackgroundApp(*bgapp1.get())); | 331 ASSERT_TRUE(IsBackgroundApp(*bgapp1.get())); |
| 318 service->UninstallExtension( | 332 service->UninstallExtension(bgapp1->id(), |
| 319 bgapp1->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 333 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 334 base::Bind(&base::DoNothing), |
| 335 NULL); |
| 320 ASSERT_EQ(2U, service->extensions()->size()); | 336 ASSERT_EQ(2U, service->extensions()->size()); |
| 321 ASSERT_EQ(2U, model->size()); | 337 ASSERT_EQ(2U, model->size()); |
| 322 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); | 338 ASSERT_TRUE(IsBackgroundApp(*bgapp2.get())); |
| 323 service->UninstallExtension( | 339 service->UninstallExtension(bgapp2->id(), |
| 324 bgapp2->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 340 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 341 base::Bind(&base::DoNothing), |
| 342 NULL); |
| 325 ASSERT_EQ(1U, service->extensions()->size()); | 343 ASSERT_EQ(1U, service->extensions()->size()); |
| 326 ASSERT_EQ(1U, model->size()); | 344 ASSERT_EQ(1U, model->size()); |
| 327 ASSERT_TRUE(IsBackgroundApp(*bgapp3.get())); | 345 ASSERT_TRUE(IsBackgroundApp(*bgapp3.get())); |
| 328 service->UninstallExtension( | 346 service->UninstallExtension(bgapp3->id(), |
| 329 bgapp3->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 347 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 348 base::Bind(&base::DoNothing), |
| 349 NULL); |
| 330 ASSERT_EQ(0U, service->extensions()->size()); | 350 ASSERT_EQ(0U, service->extensions()->size()); |
| 331 ASSERT_EQ(0U, model->size()); | 351 ASSERT_EQ(0U, model->size()); |
| 332 } | 352 } |
| 333 | 353 |
| 334 // Verifies that an ephemeral app cannot trigger background mode. | 354 // Verifies that an ephemeral app cannot trigger background mode. |
| 335 TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) { | 355 TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) { |
| 336 InitializeAndLoadEmptyExtensionService(); | 356 InitializeAndLoadEmptyExtensionService(); |
| 337 ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())-> | 357 ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())-> |
| 338 extension_service(); | 358 extension_service(); |
| 339 ASSERT_TRUE(service); | 359 ASSERT_TRUE(service); |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 } | 499 } |
| 480 scoped_refptr<Extension> extension = cursor->get(); | 500 scoped_refptr<Extension> extension = cursor->get(); |
| 481 std::string id = extension->id(); | 501 std::string id = extension->id(); |
| 482 if (BackgroundApplicationListModel::IsBackgroundApp(*extension.get(), | 502 if (BackgroundApplicationListModel::IsBackgroundApp(*extension.get(), |
| 483 service->profile())) { | 503 service->profile())) { |
| 484 --*expected; | 504 --*expected; |
| 485 } | 505 } |
| 486 extensions->erase(cursor); | 506 extensions->erase(cursor); |
| 487 --*count; | 507 --*count; |
| 488 ASSERT_EQ(*count, extensions->size()); | 508 ASSERT_EQ(*count, extensions->size()); |
| 489 service->UninstallExtension( | 509 service->UninstallExtension(extension->id(), |
| 490 extension->id(), extensions::UNINSTALL_REASON_FOR_TESTING, NULL); | 510 extensions::UNINSTALL_REASON_FOR_TESTING, |
| 511 base::Bind(&base::DoNothing), |
| 512 NULL); |
| 491 ASSERT_EQ(*count, service->extensions()->size()); | 513 ASSERT_EQ(*count, service->extensions()->size()); |
| 492 ASSERT_EQ(*expected, model->size()); | 514 ASSERT_EQ(*expected, model->size()); |
| 493 } | 515 } |
| 494 } | 516 } |
| 495 | 517 |
| 496 void TogglePermission(ExtensionService* service, | 518 void TogglePermission(ExtensionService* service, |
| 497 ExtensionCollection* extensions, | 519 ExtensionCollection* extensions, |
| 498 BackgroundApplicationListModel* model, | 520 BackgroundApplicationListModel* model, |
| 499 size_t* expected, | 521 size_t* expected, |
| 500 size_t* count) { | 522 size_t* count) { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 break; | 583 break; |
| 562 case 2: | 584 case 2: |
| 563 TogglePermission(service, &extensions, model.get(), &expected, &count); | 585 TogglePermission(service, &extensions, model.get(), &expected, &count); |
| 564 break; | 586 break; |
| 565 default: | 587 default: |
| 566 NOTREACHED(); | 588 NOTREACHED(); |
| 567 break; | 589 break; |
| 568 } | 590 } |
| 569 } | 591 } |
| 570 } | 592 } |
| OLD | NEW |