diff options
author | Alex Buynytskyy <alexbuy@google.com> | 2021-01-12 11:10:03 -0800 |
---|---|---|
committer | Alex Buynytskyy <alexbuy@google.com> | 2021-01-12 12:35:53 -0800 |
commit | 42d4ba418e97c6e34fba7b1053d69e92ec32b846 (patch) | |
tree | 51329c4aa638a50db0adaa57690c49310041b931 /services/incremental/test/IncrementalServiceTest.cpp | |
parent | daea39f8a21c1900f45e652df2fa10ffe3e3d5bf (diff) |
Require INTERACT_ACROSS_USERS to enable readlogs.
As requested by PWG.
Bug: 177330562
Fixes: 177330562
Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest
Change-Id: I1b03bc1c5b4c3cffaa0f97d864cc088782290bc2
Diffstat (limited to 'services/incremental/test/IncrementalServiceTest.cpp')
-rw-r--r-- | services/incremental/test/IncrementalServiceTest.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp index 02eaa2fe07b1..47b9051970e4 100644 --- a/services/incremental/test/IncrementalServiceTest.cpp +++ b/services/incremental/test/IncrementalServiceTest.cpp @@ -397,6 +397,15 @@ public: void checkPermissionSuccess() { ON_CALL(*this, checkPermission(_, _, _)).WillByDefault(Return(android::incremental::Ok())); } + void checkPermissionNoCrossUsers() { + ON_CALL(*this, + checkPermission("android.permission.LOADER_USAGE_STATS", + "android:loader_usage_stats", _)) + .WillByDefault(Return(android::incremental::Ok())); + ON_CALL(*this, checkPermission("android.permission.INTERACT_ACROSS_USERS", nullptr, _)) + .WillByDefault( + Return(android::incremental::Exception(binder::Status::EX_SECURITY, {}))); + } void checkPermissionFails() { ON_CALL(*this, checkPermission(_, _, _)) .WillByDefault( @@ -1047,6 +1056,23 @@ TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsCheckPermissionFails) { ASSERT_LT(mDataLoader->setStorageParams(true), 0); } +TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsCheckPermissionNoCrossUsers) { + mAppOpsManager->checkPermissionNoCrossUsers(); + + EXPECT_CALL(*mDataLoaderManager, unbindFromDataLoader(_)); + EXPECT_CALL(*mVold, unmountIncFs(_)).Times(2); + // checkPermission fails, no calls to set opitions, start or stop WatchingMode. + EXPECT_CALL(*mVold, setIncFsMountOptions(_, true)).Times(0); + EXPECT_CALL(*mAppOpsManager, startWatchingMode(_, _, _)).Times(0); + EXPECT_CALL(*mAppOpsManager, stopWatchingMode(_)).Times(0); + TemporaryDir tempDir; + int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), + IncrementalService::CreateOptions::CreateNew, + {}, {}, {}, {}); + ASSERT_GE(storageId, 0); + ASSERT_LT(mDataLoader->setStorageParams(true), 0); +} + TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsFails) { mVold->setIncFsMountOptionsFails(); mAppOpsManager->checkPermissionSuccess(); |