Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(381)

Side by Side Diff: extensions/common/features/simple_feature_unittest.cc

Issue 2255613003: Introduce session type parameter to extension features (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Introduce session type parameter to extension features Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "extensions/common/features/simple_feature.h" 5 #include "extensions/common/features/simple_feature.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION, 415 EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION,
416 feature 416 feature
417 .IsAvailableToContext(extension.get(), 417 .IsAvailableToContext(extension.get(),
418 Feature::BLESSED_EXTENSION_CONTEXT, 418 Feature::BLESSED_EXTENSION_CONTEXT,
419 Feature::SESSION_TYPE_UNSPECIFIED, 419 Feature::SESSION_TYPE_UNSPECIFIED,
420 Feature::CHROMEOS_PLATFORM) 420 Feature::CHROMEOS_PLATFORM)
421 .result()); 421 .result());
422 feature.set_max_manifest_version(25); 422 feature.set_max_manifest_version(25);
423 } 423 }
424 424
425 TEST_F(SimpleFeatureTest, SessionType) {
426 base::DictionaryValue manifest;
427 manifest.SetString("name", "test");
428 manifest.SetString("version", "1");
429 manifest.SetInteger("manifest_version", 21);
430 manifest.SetString("app.launch.local_path", "foo.html");
431
432 std::string error;
433 scoped_refptr<const Extension> extension(
434 Extension::Create(base::FilePath(), Manifest::INTERNAL, manifest,
435 Extension::NO_FLAGS, &error));
436 EXPECT_EQ("", error);
437 ASSERT_TRUE(extension.get());
438
439 SimpleFeature kiosk_feature;
440 kiosk_feature.session_types_.push_back(Feature::SESSION_TYPE_KIOSK);
441 EXPECT_EQ(Feature::IS_AVAILABLE,
442 kiosk_feature
443 .IsAvailableToContext(
444 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
445 Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
446 .result());
447 EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
448 kiosk_feature
449 .IsAvailableToContext(
450 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
451 Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
452 .result());
453 EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
454 kiosk_feature
455 .IsAvailableToContext(extension.get(),
456 Feature::BLESSED_EXTENSION_CONTEXT,
457 Feature::SESSION_TYPE_UNSPECIFIED,
458 Feature::CHROMEOS_PLATFORM)
459 .result());
460
461 SimpleFeature non_kiosk_feature;
462 non_kiosk_feature.session_types_.push_back(Feature::SESSION_TYPE_REGULAR);
463 EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
464 non_kiosk_feature
465 .IsAvailableToContext(
466 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
467 Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
468 .result());
469 EXPECT_EQ(Feature::IS_AVAILABLE,
470 non_kiosk_feature
471 .IsAvailableToContext(
472 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
473 Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
474 .result());
475 EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
476 non_kiosk_feature
477 .IsAvailableToContext(extension.get(),
478 Feature::BLESSED_EXTENSION_CONTEXT,
479 Feature::SESSION_TYPE_UNSPECIFIED,
480 Feature::CHROMEOS_PLATFORM)
481 .result());
482
483 SimpleFeature session_agnostic_feature;
484 EXPECT_EQ(Feature::IS_AVAILABLE,
485 session_agnostic_feature
486 .IsAvailableToContext(
487 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
488 Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
489 .result());
490 EXPECT_EQ(Feature::IS_AVAILABLE,
491 session_agnostic_feature
492 .IsAvailableToContext(
493 extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
494 Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
495 .result());
496 EXPECT_EQ(Feature::IS_AVAILABLE,
497 session_agnostic_feature
498 .IsAvailableToContext(extension.get(),
499 Feature::BLESSED_EXTENSION_CONTEXT,
500 Feature::SESSION_TYPE_UNSPECIFIED,
501 Feature::CHROMEOS_PLATFORM)
502 .result());
503 }
504
425 TEST_F(SimpleFeatureTest, Location) { 505 TEST_F(SimpleFeatureTest, Location) {
426 // Component extensions can access any location. 506 // Component extensions can access any location.
427 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::COMPONENT_LOCATION, 507 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::COMPONENT_LOCATION,
428 Manifest::COMPONENT)); 508 Manifest::COMPONENT));
429 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::EXTERNAL_COMPONENT_LOCATION, 509 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::EXTERNAL_COMPONENT_LOCATION,
430 Manifest::COMPONENT)); 510 Manifest::COMPONENT));
431 EXPECT_TRUE( 511 EXPECT_TRUE(
432 LocationIsAvailable(SimpleFeature::POLICY_LOCATION, Manifest::COMPONENT)); 512 LocationIsAvailable(SimpleFeature::POLICY_LOCATION, Manifest::COMPONENT));
433 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::UNSPECIFIED_LOCATION, 513 EXPECT_TRUE(LocationIsAvailable(SimpleFeature::UNSPECIFIED_LOCATION,
434 Manifest::COMPONENT)); 514 Manifest::COMPONENT));
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 EXPECT_NE(Feature::IS_AVAILABLE, 1070 EXPECT_NE(Feature::IS_AVAILABLE,
991 feature 1071 feature
992 ->IsAvailableToManifest("1", Manifest::TYPE_EXTENSION, 1072 ->IsAvailableToManifest("1", Manifest::TYPE_EXTENSION,
993 Manifest::INVALID_LOCATION, 1073 Manifest::INVALID_LOCATION,
994 Feature::UNSPECIFIED_PLATFORM) 1074 Feature::UNSPECIFIED_PLATFORM)
995 .result()); 1075 .result());
996 } 1076 }
997 } 1077 }
998 1078
999 } // namespace extensions 1079 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698