| Index: goopdate/app_bundle_unittest.cc
|
| diff --git a/goopdate/app_bundle_unittest.cc b/goopdate/app_bundle_unittest.cc
|
| deleted file mode 100644
|
| index 13220f2556dbd51f3ff4199700ca381465d8a0f7..0000000000000000000000000000000000000000
|
| --- a/goopdate/app_bundle_unittest.cc
|
| +++ /dev/null
|
| @@ -1,2357 +0,0 @@
|
| -// Copyright 2009-2010 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -
|
| -#include <atlsecurity.h>
|
| -#include "omaha/base/app_util.h"
|
| -#include "omaha/base/error.h"
|
| -#include "omaha/base/reg_key.h"
|
| -#include "omaha/base/scoped_ptr_address.h"
|
| -#include "omaha/base/thread_pool.h"
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/common/lang.h"
|
| -#include "omaha/goopdate/app_bundle_state_busy.h"
|
| -#include "omaha/goopdate/app_bundle_state_initialized.h"
|
| -#include "omaha/goopdate/app_bundle_state_paused.h"
|
| -#include "omaha/goopdate/app_bundle_state_ready.h"
|
| -#include "omaha/goopdate/app_bundle_state_stopped.h"
|
| -#include "omaha/goopdate/app_manager.h"
|
| -#include "omaha/goopdate/model.h"
|
| -#include "omaha/goopdate/resource_manager.h"
|
| -#include "omaha/goopdate/worker.h"
|
| -#include "omaha/goopdate/worker_mock.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -const int kKnownError = 0x87658765;
|
| -
|
| -const TCHAR* const kDefaultAppName = _T("Google Application");
|
| -
|
| -const uint32 kInitialInstallTimeDiff = static_cast<uint32>(-1 * kSecondsPerDay);
|
| -
|
| -// TODO(omaha): there is a problem with this unit test. The model is built
|
| -// bottom up. This makes it impossible to set the references to parents. Will
|
| -// have to fix the code, eventually using Builder DP to create a bunch of
|
| -// models containing bundles, apps, and such.
|
| -
|
| -
|
| -// Helper functions.
|
| -// TODO(omaha): helper functions need to go into their own compilation unit to
|
| -// avoid dependencies between unit test modules.
|
| -
|
| -void ValidateFreshInstallDefaultValues(const App& app) {
|
| - EXPECT_FALSE(::IsEqualGUID(GUID_NULL, app.app_guid()));
|
| - EXPECT_TRUE(app.language().IsEmpty());
|
| - EXPECT_TRUE(app.ap().IsEmpty());
|
| - EXPECT_TRUE(app.tt_token().IsEmpty());
|
| - EXPECT_TRUE(::IsEqualGUID(GUID_NULL, app.iid()));
|
| - EXPECT_TRUE(app.brand_code().IsEmpty());
|
| - EXPECT_TRUE(app.client_id().IsEmpty());
|
| - EXPECT_TRUE(app.GetExperimentLabels().IsEmpty());
|
| - EXPECT_TRUE(app.referral_id().IsEmpty());
|
| - EXPECT_EQ(kInitialInstallTimeDiff, app.install_time_diff_sec());
|
| - EXPECT_FALSE(app.is_eula_accepted());
|
| - EXPECT_TRUE(app.display_name().IsEmpty());
|
| - EXPECT_EQ(BROWSER_UNKNOWN, app.browser_type());
|
| - EXPECT_TRUE(app.server_install_data_index().IsEmpty());
|
| - EXPECT_EQ(TRISTATE_NONE, app.usage_stats_enable());
|
| - EXPECT_TRUE(app.client_install_data().IsEmpty());
|
| - EXPECT_TRUE(app.server_install_data().IsEmpty());
|
| - EXPECT_EQ(ACTIVE_UNKNOWN, app.did_run());
|
| - EXPECT_EQ(0, app.days_since_last_active_ping());
|
| - EXPECT_EQ(0, app.days_since_last_roll_call());
|
| -
|
| - EXPECT_TRUE(app.current_version()->version().IsEmpty());
|
| - EXPECT_TRUE(app.next_version()->version().IsEmpty());
|
| - // TODO(omaha3): Add all the new values (state_, etc.).
|
| -}
|
| -
|
| -void PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(
|
| - bool is_machine,
|
| - App* expected_app0,
|
| - App* expected_app1,
|
| - App* expected_app2,
|
| - App* opposite_hive_app1,
|
| - App* opposite_hive_app2);
|
| -
|
| -void SetDisplayName(const CString& name, App* app);
|
| -
|
| -void ValidateExpectedValues(const App& expected, const App& actual) {
|
| - EXPECT_STREQ(GuidToString(expected.app_guid()),
|
| - GuidToString(actual.app_guid()));
|
| - EXPECT_STREQ(expected.language(), actual.language());
|
| - EXPECT_STREQ(expected.ap(), actual.ap());
|
| - EXPECT_STREQ(expected.tt_token(), actual.tt_token());
|
| - EXPECT_STREQ(GuidToString(expected.iid()), GuidToString(actual.iid()));
|
| - EXPECT_STREQ(expected.brand_code(), actual.brand_code());
|
| - EXPECT_STREQ(expected.client_id(), actual.client_id());
|
| - EXPECT_STREQ(expected.GetExperimentLabels(), actual.GetExperimentLabels());
|
| - EXPECT_STREQ(expected.referral_id(), actual.referral_id());
|
| - EXPECT_EQ(expected.install_time_diff_sec(), actual.install_time_diff_sec());
|
| - EXPECT_EQ(expected.is_eula_accepted(), actual.is_eula_accepted());
|
| - EXPECT_STREQ(expected.display_name(), actual.display_name());
|
| - EXPECT_EQ(expected.browser_type(), actual.browser_type());
|
| - EXPECT_STREQ(expected.server_install_data_index(),
|
| - actual.server_install_data_index());
|
| - EXPECT_EQ(expected.usage_stats_enable(), actual.usage_stats_enable());
|
| - EXPECT_STREQ(expected.client_install_data(), actual.client_install_data());
|
| - EXPECT_STREQ(expected.server_install_data(), actual.server_install_data());
|
| - EXPECT_EQ(expected.did_run(), actual.did_run());
|
| -
|
| - EXPECT_STREQ(expected.current_version()->version(),
|
| - actual.current_version()->version());
|
| - EXPECT_STREQ(expected.next_version()->version(),
|
| - actual.next_version()->version());
|
| -
|
| - // TODO(omaha3): Add all the new values (state(), etc.)?
|
| -}
|
| -
|
| -using ::testing::_;
|
| -using ::testing::Return;
|
| -
|
| -namespace {
|
| -
|
| -// TODO(omaha): At least some of these and where they are used have to be kept
|
| -// in sync with app_manager_unittest.cc because the constants are hard-coded in
|
| -// functions used by these tests. Break this coupling.
|
| -const TCHAR* const kGuid1 = _T("{21CD0965-0B0E-47cf-B421-2D191C16C0E2}");
|
| -const TCHAR* const kGuid2 = _T("{A979ACBD-1F55-4b12-A35F-4DBCA5A7CCB8}");
|
| -const TCHAR* const kGuid3 = _T("{661045C5-4429-4140-BC48-8CEA241D1DEF}");
|
| -const TCHAR* const kGuid4 = _T("{AAFA1CF9-E94F-42e6-A899-4CD27F37D5A7}");
|
| -const TCHAR* const kGuid5 = _T("{3B1A3CCA-0525-4418-93E6-A0DB3398EC9B}");
|
| -const TCHAR* const kGuid6 = _T("{F3F2CFD4-5F98-4bf0-ABB0-BEEEA46C62B4}");
|
| -const TCHAR* const kGuid7 = _T("{6FD2272F-8583-4bbd-895A-E65F8003FC7B}");
|
| -
|
| -
|
| -class DummyUserWorkItem : public UserWorkItem {
|
| - private:
|
| - virtual void DoProcess() {}
|
| -};
|
| -
|
| -ACTION_P(SetWorkItem, work_item) {
|
| - UNREFERENCED_ACTION_PARAMETERS;
|
| - arg0->set_user_work_item(work_item);
|
| - return 0;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class AppBundleNoBundleTest : public testing::Test {
|
| - protected:
|
| - explicit AppBundleNoBundleTest(bool is_machine)
|
| - : is_machine_(is_machine) {}
|
| -
|
| - virtual void SetUp() {
|
| - EXPECT_SUCCEEDED(AppManager::CreateInstance(is_machine_));
|
| -
|
| - // By default, no Worker methods should be called, so use StrictMock.
|
| - // Override this behavior for specific methods in the individual test cases.
|
| - worker_.reset(new testing::StrictMock<MockWorker>);
|
| - model_.reset(new Model(worker_.get()));
|
| -
|
| - EXPECT_CALL(*worker_, Lock()).WillRepeatedly(Return(2));
|
| - EXPECT_CALL(*worker_, Unlock()).WillRepeatedly(Return(1));
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - AppManager::DeleteInstance();
|
| - }
|
| -
|
| - const bool is_machine_;
|
| - scoped_ptr<MockWorker> worker_;
|
| - scoped_ptr<Model> model_;
|
| -
|
| - private:
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(AppBundleNoBundleTest);
|
| -};
|
| -
|
| -class AppBundleTest : public AppBundleNoBundleTest {
|
| - protected:
|
| - explicit AppBundleTest(bool is_machine) : AppBundleNoBundleTest(is_machine) {}
|
| -
|
| - static void SetUpTestCase() {
|
| - EXPECT_EQ(STATE_INIT, fsm::AppBundleState::STATE_INIT);
|
| - EXPECT_EQ(STATE_INITIALIZED, fsm::AppBundleState::STATE_INITIALIZED);
|
| - EXPECT_EQ(STATE_BUSY, fsm::AppBundleState::STATE_BUSY);
|
| - EXPECT_EQ(STATE_READY, fsm::AppBundleState::STATE_READY);
|
| - EXPECT_EQ(STATE_PAUSED, fsm::AppBundleState::STATE_PAUSED);
|
| - EXPECT_EQ(STATE_STOPPED, fsm::AppBundleState::STATE_STOPPED);
|
| - }
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleNoBundleTest::SetUp();
|
| - app_bundle_ = model_->CreateAppBundle(is_machine_);
|
| - ASSERT_TRUE(app_bundle_.get());
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - app_bundle_.reset();
|
| - AppBundleNoBundleTest::TearDown();
|
| - }
|
| -
|
| - void TestPropertyReflexiveness() {
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayName(CComBSTR(_T("My Apps"))));
|
| - CComBSTR name(_T(""));
|
| - EXPECT_SUCCEEDED(app_bundle_->get_displayName(&name));
|
| - EXPECT_STREQ(_T("My Apps"), name);
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayLanguage(CComBSTR(_T("en"))));
|
| - CComBSTR lang(_T(""));
|
| - EXPECT_SUCCEEDED(app_bundle_->get_displayLanguage(&lang));
|
| - EXPECT_STREQ(_T("en"), lang);
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->put_installSource(CComBSTR(_T("unittest"))));
|
| - CComBSTR source(_T(""));
|
| - EXPECT_SUCCEEDED(app_bundle_->get_installSource(&source));
|
| - EXPECT_STREQ(_T("unittest"), source);
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->put_priority(INSTALL_PRIORITY_LOW));
|
| - long priority = INSTALL_PRIORITY_HIGH; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_priority(&priority));
|
| - EXPECT_EQ(INSTALL_PRIORITY_LOW, priority);
|
| - }
|
| -
|
| - // A copy of the protected enum in AppBundleState, allowing the individual
|
| - // tests to use these values.
|
| - enum BundleState {
|
| - STATE_INIT,
|
| - STATE_INITIALIZED,
|
| - STATE_BUSY,
|
| - STATE_READY,
|
| - STATE_PAUSED,
|
| - STATE_STOPPED,
|
| - };
|
| -
|
| - BundleState GetBundleState() {
|
| - return static_cast<BundleState>(app_bundle_->app_bundle_state_->state_);
|
| - }
|
| -
|
| - shared_ptr<AppBundle> app_bundle_;
|
| -
|
| - private:
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(AppBundleTest);
|
| -};
|
| -
|
| -class AppBundleUninitializedTest : public AppBundleTest {
|
| - protected:
|
| - explicit AppBundleUninitializedTest(bool is_machine)
|
| - : AppBundleTest(is_machine) {}
|
| -
|
| - void TestPropertyDefaults() {
|
| - CComBSTR name;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_displayName(&name));
|
| - EXPECT_STREQ(_T(""), name);
|
| -
|
| - CComBSTR lang;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_displayLanguage(&lang));
|
| - EXPECT_STREQ(lang::GetDefaultLanguage(is_machine_), lang);
|
| -
|
| - CComBSTR install_source;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_installSource(&install_source));
|
| - EXPECT_STREQ(_T("unknown"), install_source);
|
| -
|
| - CComBSTR offline_dir;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_offlineDirectory(&offline_dir));
|
| - EXPECT_STREQ(_T(""), offline_dir);
|
| -
|
| - long priority; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_priority(&priority));
|
| - EXPECT_EQ(INSTALL_PRIORITY_HIGH, priority);
|
| - }
|
| -};
|
| -
|
| -class AppBundleUninitializedMachineTest : public AppBundleUninitializedTest {
|
| - protected:
|
| - AppBundleUninitializedMachineTest() : AppBundleUninitializedTest(true) {}
|
| -};
|
| -
|
| -class AppBundleUninitializedUserTest : public AppBundleUninitializedTest {
|
| - protected:
|
| - AppBundleUninitializedUserTest() : AppBundleUninitializedTest(false) {}
|
| -};
|
| -
|
| -TEST_F(AppBundleUninitializedMachineTest, Properties) {
|
| - TestPropertyDefaults();
|
| - TestPropertyReflexiveness();
|
| -}
|
| -
|
| -TEST_F(AppBundleUninitializedUserTest, Properties) {
|
| - TestPropertyDefaults();
|
| - TestPropertyReflexiveness();
|
| -}
|
| -
|
| -class AppBundleInitializedTest : public AppBundleTest {
|
| - protected:
|
| - explicit AppBundleInitializedTest(bool is_machine)
|
| - : AppBundleTest(is_machine) {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleTest::SetUp();
|
| - // TODO(omaha): UserRights::GetCallerToken() fails with ERROR_NO_TOKEN
|
| - // when initialize() is called for a machine bundle during these tests.
|
| - // It might make sense to move theimpersonation stuff to the COM wrapper,
|
| - // but I am not sure how this would work with the AppBundleStates.
|
| - // If we can do something about this, call initialize() in all cases.
|
| - if (is_machine_) {
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStateInitialized);
|
| - } else {
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayName(CComBSTR(_T("My Bundle"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayLanguage(CComBSTR(_T("en"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->initialize());
|
| - }
|
| - }
|
| -};
|
| -
|
| -class AppBundleNoBundleMachineTest : public AppBundleNoBundleTest {
|
| - protected:
|
| - AppBundleNoBundleMachineTest() : AppBundleNoBundleTest(true) {}
|
| -};
|
| -
|
| -class AppBundleNoBundleUserTest : public AppBundleNoBundleTest {
|
| - protected:
|
| - AppBundleNoBundleUserTest() : AppBundleNoBundleTest(false) {}
|
| -};
|
| -
|
| -class AppBundleInitializedMachineTest : public AppBundleInitializedTest {
|
| - protected:
|
| - AppBundleInitializedMachineTest() : AppBundleInitializedTest(true) {}
|
| -};
|
| -
|
| -class AppBundleInitializedUserTest : public AppBundleInitializedTest {
|
| - protected:
|
| - AppBundleInitializedUserTest() : AppBundleInitializedTest(false) {}
|
| -};
|
| -
|
| -
|
| -// The creation of an app bundle inserts it in the model and increments
|
| -// the server module count.
|
| -TEST_F(AppBundleNoBundleUserTest, ConstructorAndDestructor) {
|
| - EXPECT_CALL(*worker_, Lock()).WillOnce(Return(2));
|
| - EXPECT_CALL(*worker_, Unlock()).WillOnce(Return(1));
|
| -
|
| - shared_ptr<AppBundle> app_bundle(model_->CreateAppBundle(is_machine_));
|
| - EXPECT_TRUE(app_bundle.get());
|
| - EXPECT_EQ(1, model_->GetNumberOfAppBundles());
|
| - EXPECT_EQ(app_bundle.get(), model_->GetAppBundle(0).get());
|
| - app_bundle.reset();
|
| - EXPECT_EQ(0, model_->GetNumberOfAppBundles());
|
| -}
|
| -
|
| -TEST_F(AppBundleNoBundleMachineTest, ConstructorAndDestructor) {
|
| - EXPECT_CALL(*worker_, Lock()).WillOnce(Return(2));
|
| - EXPECT_CALL(*worker_, Unlock()).WillOnce(Return(1));
|
| -
|
| - shared_ptr<AppBundle> app_bundle(model_->CreateAppBundle(is_machine_));
|
| - EXPECT_TRUE(app_bundle.get());
|
| - EXPECT_EQ(1, model_->GetNumberOfAppBundles());
|
| - EXPECT_EQ(app_bundle.get(), model_->GetAppBundle(0).get());
|
| - app_bundle.reset();
|
| - EXPECT_EQ(0, model_->GetNumberOfAppBundles());
|
| -}
|
| -
|
| -class AppBundlePopulatedRegistryTest : public AppBundleInitializedTest {
|
| - protected:
|
| - explicit AppBundlePopulatedRegistryTest(bool is_machine)
|
| - : AppBundleInitializedTest(is_machine),
|
| - hive_override_key_name_(kRegistryHiveOverrideRoot) {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleInitializedTest::SetUp();
|
| -
|
| - RegKey::DeleteKey(hive_override_key_name_);
|
| - OverrideRegistryHives(hive_override_key_name_);
|
| -
|
| - EXPECT_SUCCEEDED(ResourceManager::Create(
|
| - is_machine_, app_util::GetCurrentModuleDirectory(), _T("en")));
|
| -
|
| - dummy_app_bundle_for_expected_apps_ = model_->CreateAppBundle(is_machine_);
|
| - ASSERT_TRUE(dummy_app_bundle_for_expected_apps_.get());
|
| - // TODO(omaha): Address with the TODO in AppBundleInitializedTest::SetUp.
|
| - if (is_machine_) {
|
| - SetAppBundleStateForUnitTest(dummy_app_bundle_for_expected_apps_.get(),
|
| - new fsm::AppBundleStateInitialized);
|
| - } else {
|
| - EXPECT_SUCCEEDED(dummy_app_bundle_for_expected_apps_->put_displayName(
|
| - CComBSTR(_T("My Bundle"))));
|
| - EXPECT_SUCCEEDED(dummy_app_bundle_for_expected_apps_->put_displayLanguage(
|
| - CComBSTR(_T("en"))));
|
| - EXPECT_SUCCEEDED(dummy_app_bundle_for_expected_apps_->initialize());
|
| - }
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - dummy_app_bundle_for_expected_apps_.reset();
|
| -
|
| - ResourceManager::Delete();
|
| -
|
| - RestoreRegistryHives();
|
| - RegKey::DeleteKey(hive_override_key_name_);
|
| -
|
| - AppBundleInitializedTest::TearDown();
|
| - }
|
| -
|
| - // App will be cleaned up when bundle is destroyed.
|
| - // This is a hack for creating registry data. Would be nice to have a
|
| - // different mechanism.
|
| - App* CreateExpectedApp(const TCHAR* app_id) {
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(
|
| - dummy_app_bundle_for_expected_apps_->createApp(CComBSTR(app_id), &app));
|
| - ASSERT1(app);
|
| - return app;
|
| - }
|
| -
|
| - void PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(
|
| - App** expected_app0,
|
| - App** expected_app1,
|
| - App** expected_app2) {
|
| - *expected_app0 = CreateExpectedApp(kGuid1);
|
| - *expected_app1 = CreateExpectedApp(kGuid2);
|
| - *expected_app2 = CreateExpectedApp(kGuid3);
|
| - App* opposite_hive_app1 = CreateExpectedApp(kGuid6);
|
| - App* opposite_hive_app2 = CreateExpectedApp(kGuid7);
|
| - omaha::PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(
|
| - is_machine_,
|
| - *expected_app0,
|
| - *expected_app1,
|
| - *expected_app2,
|
| - opposite_hive_app1,
|
| - opposite_hive_app2);
|
| -
|
| - // Reload install age since registry has been changed.
|
| - AppManager::Instance()->ReadAppInstallTimeDiff(*expected_app0);
|
| - AppManager::Instance()->ReadAppInstallTimeDiff(*expected_app1);
|
| - AppManager::Instance()->ReadAppInstallTimeDiff(*expected_app2);
|
| - AppManager::Instance()->ReadAppInstallTimeDiff(opposite_hive_app1);
|
| - AppManager::Instance()->ReadAppInstallTimeDiff(opposite_hive_app2);
|
| - }
|
| -
|
| - CString hive_override_key_name_;
|
| - shared_ptr<AppBundle> dummy_app_bundle_for_expected_apps_;
|
| - LLock lock_;
|
| -
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(AppBundlePopulatedRegistryTest);
|
| -};
|
| -
|
| -class AppBundlePopulatedRegistryMachineTest
|
| - : public AppBundlePopulatedRegistryTest {
|
| - protected:
|
| - AppBundlePopulatedRegistryMachineTest()
|
| - : AppBundlePopulatedRegistryTest(true) {}
|
| -};
|
| -
|
| -class AppBundlePopulatedRegistryUserTest
|
| - : public AppBundlePopulatedRegistryTest {
|
| - protected:
|
| - AppBundlePopulatedRegistryUserTest()
|
| - : AppBundlePopulatedRegistryTest(false) {}
|
| -};
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, CountAndItem_NoApps) {
|
| - EXPECT_EQ(0, app_bundle_->GetNumberOfApps());
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FALSE(app_bundle_->GetApp(0));
|
| - }
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FALSE(app_bundle_->GetApp(1));
|
| - }
|
| - App* app1_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_FALSE(app1_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, CountAndItem_OneApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| -
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(1, num_apps);
|
| -
|
| - EXPECT_TRUE(app_bundle_->GetApp(0));
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_TRUE(app0_obtained);
|
| -
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FALSE(app_bundle_->GetApp(1));
|
| - }
|
| - App* app1_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_FALSE(app1_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, CountAndItem_TwoApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - App* app1_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid2), &app1_created));
|
| -
|
| - EXPECT_EQ(2, app_bundle_->GetNumberOfApps());
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(2, num_apps);
|
| -
|
| - EXPECT_TRUE(app_bundle_->GetApp(0));
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_TRUE(app0_obtained);
|
| - EXPECT_EQ(app0_created, app0_obtained);
|
| -
|
| - EXPECT_TRUE(app_bundle_->GetApp(1));
|
| - App* app1_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_TRUE(app1_obtained);
|
| -
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FALSE(app_bundle_->GetApp(2));
|
| - }
|
| - App* app2_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(2, &app2_obtained));
|
| - EXPECT_FALSE(app2_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| -
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - ValidateFreshInstallDefaultValues(*app0);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createApp_TwoApps) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| -
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - ValidateFreshInstallDefaultValues(*app0);
|
| -
|
| - // Add a second app to the bundle.
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid2), &app1_created));
|
| - EXPECT_TRUE(app1_created);
|
| - EXPECT_EQ(2, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app1 = app_bundle_->GetApp(1);
|
| - EXPECT_EQ(app1_created, app1);
|
| -
|
| - EXPECT_STREQ(CString(kGuid2).MakeUpper(), app1->app_guid_string());
|
| - ValidateFreshInstallDefaultValues(*app1);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createApp_SameAppTwice) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| -
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - ValidateFreshInstallDefaultValues(*app0);
|
| -
|
| - // Attempt to add the same app to the bundle again.
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app1_created));
|
| - EXPECT_FALSE(app1_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createApp_AfterUpdateCheck) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid2), &app1_created));
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedMachineTest, createApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| -
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - ValidateFreshInstallDefaultValues(*app0);
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, checkForUpdate_NoApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| -}
|
| -
|
| -// Does not verify the update check occurs.
|
| -TEST_F(AppBundleInitializedUserTest, checkForUpdate_OneApp) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// Does not verify the update check occurs.
|
| -TEST_F(AppBundleInitializedUserTest, checkForUpdate_TwoApps) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app0 = NULL;
|
| - App* app1 = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0));
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid2), &app1));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, checkForUpdate_Twice) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, checkForUpdate_WhileBundleIsBusy) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// Does not verify the update check occurs.
|
| -TEST_F(AppBundleInitializedMachineTest, checkForUpdate_OneApp) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, download_WithoutUpdateCheck) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->download());
|
| -}
|
| -
|
| -// The AppBundle does not prevent this, but the apps may enter the error state.
|
| -TEST_F(AppBundleInitializedUserTest, download_AfterInstall) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// The AppBundle does not prevent this, but the apps may enter the error state.
|
| -TEST_F(AppBundleInitializedUserTest, download_Twice) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .Times(2)
|
| - .WillRepeatedly(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// Simulates the update check still in progress when download() is called.
|
| -TEST_F(AppBundleInitializedUserTest, download_WhileBundleIsBusy) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_NON_BLOCKING_CALL_PENDING, app_bundle_->download());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// The AppBundle does not prevent this, but the apps may enter the error state.
|
| -TEST_F(AppBundleInitializedMachineTest, download_Twice) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .Times(2)
|
| - .WillRepeatedly(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, install_WithoutUpdateCheck) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->install());
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, install_WithoutDownload) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, install_AfterDownload) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// The AppBundle does not prevent this, but the apps may enter the error state.
|
| -TEST_F(AppBundleInitializedUserTest, install_Twice) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .Times(2)
|
| - .WillRepeatedly(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// TODO(omaha): These tests are disabled because CaptureCallerPrimaryToken()
|
| -// fails. We could move this to AppBundleWrapper, but we would need to expose
|
| -// some functions to AppBundleWrapper.
|
| -TEST_F(AppBundleInitializedMachineTest, DISABLED_install_WithoutDownload) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedMachineTest, DISABLED_install_AfterDownload) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - {
|
| - ::testing::InSequence dummy;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| - }
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// Simulates the update check still in progress when install is called.
|
| -TEST_F(AppBundleInitializedUserTest, install_WhileBundleIsBusy) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(GOOPDATE_E_NON_BLOCKING_CALL_PENDING, app_bundle_->install());
|
| -
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -}
|
| -
|
| -// Also tests adding another app via the same method.
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createInstalledApp_Present_TwoApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app0);
|
| -
|
| - // Add a second app to the bundle.
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid2),
|
| - &app1_created));
|
| - EXPECT_TRUE(app1_created);
|
| - EXPECT_EQ(2, app_bundle_->GetNumberOfApps());
|
| -
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(2, num_apps);
|
| -
|
| - App* app1 = app_bundle_->GetApp(1);
|
| - EXPECT_EQ(app1_created, app1);
|
| - EXPECT_STREQ(CString(kGuid2).MakeUpper(), app1->app_guid_string());
|
| - SetDisplayName(kDefaultAppName, expected_app1);
|
| - EXPECT_SUCCEEDED(expected_app1->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app1, *app1);
|
| -
|
| - // Verify COM methods return the same values as the C++ methods used above.
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(2, num_apps);
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_EQ(app0, app0_obtained);
|
| - App* app1_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_EQ(app1, app1_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryMachineTest, createInstalledApp_Present) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app0);
|
| -
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(1, num_apps);
|
| -}
|
| -
|
| -// TODO(omaha3): Test that the same app can be added to different bundles for
|
| -// each of the create methods.
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createInstalledApp_SameAppTwice) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| - EXPECT_TRUE(app0_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_EQ(app0_created, app0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app0);
|
| -
|
| - // Attempt to add the same app to the bundle again.
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app1_created));
|
| - EXPECT_FALSE(app1_created);
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createInstalledApp_NotPresent) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
| - app_bundle_->createInstalledApp(
|
| - CComBSTR(_T("{2D5F8E16-B56B-496a-BA8B-3A0B5EC17F4F}")),
|
| - &app0_created));
|
| - EXPECT_FALSE(app0_created);
|
| - EXPECT_EQ(0, app_bundle_->GetNumberOfApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createInstalledApp_NoAppsRegistered) {
|
| - App* app0_created = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app0_created));
|
| - EXPECT_FALSE(app0_created);
|
| - EXPECT_EQ(0, app_bundle_->GetNumberOfApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createInstalledApp_AfterUpdateCheck) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid2), &app1_created));
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createAllInstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid4))); // Avoid assert.
|
| -
|
| - // See comment in machine createAllInstalledApps test.
|
| - const CString incomplete_clients_key =
|
| - AppendRegKeyPath(USER_REG_CLIENTS, kGuid4);
|
| - EXPECT_TRUE(RegKey::HasKey(incomplete_clients_key));
|
| - EXPECT_FALSE(RegKey::HasValue(incomplete_clients_key,
|
| - kRegValueProductVersion));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(2, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app0);
|
| -
|
| - App* app1 = app_bundle_->GetApp(1);
|
| - EXPECT_STREQ(CString(kGuid2).MakeUpper(), app1->app_guid_string());
|
| - SetDisplayName(kDefaultAppName, expected_app1);
|
| - EXPECT_SUCCEEDED(expected_app1->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app1, *app1);
|
| -
|
| - // Verify COM methods return the same values as the C++ methods used above.
|
| - long num_registered_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_registered_apps));
|
| - EXPECT_EQ(2, num_registered_apps);
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_EQ(app0, app0_obtained);
|
| - App* app1_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_EQ(app1, app1_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryMachineTest, createAllInstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(MACHINE_REG_CLIENT_STATE, kGuid4))); // Avoid assert.
|
| -
|
| - // An important part of this test is that processing continues and
|
| - // even though there is a key for an app that is not properly
|
| - // registered (e.g. it does not have a pv value or has an invalid pv value).
|
| - // Since this is so important, explicitly check registry was set up correctly.
|
| - // Invalid pv value type is checked in a separate test since it causes an
|
| - // assert.
|
| - // An app without a pv is not added to the bundle.
|
| - const CString incomplete_clients_key =
|
| - AppendRegKeyPath(MACHINE_REG_CLIENTS, kGuid4);
|
| - EXPECT_TRUE(RegKey::HasKey(incomplete_clients_key));
|
| - EXPECT_FALSE(RegKey::HasValue(incomplete_clients_key,
|
| - kRegValueProductVersion));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(2, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app0);
|
| -
|
| - App* app1 = app_bundle_->GetApp(1);
|
| - EXPECT_STREQ(CString(kGuid2).MakeUpper(), app1->app_guid_string());
|
| - SetDisplayName(kDefaultAppName, expected_app1);
|
| - EXPECT_SUCCEEDED(expected_app1->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app1, *app1);
|
| -
|
| - // Verify COM methods return the same values as the C++ methods used above.
|
| - long num_registered_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_registered_apps));
|
| - EXPECT_EQ(2, num_registered_apps);
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_EQ(app0, app0_obtained);
|
| - App* app1_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(1, &app1_obtained));
|
| - EXPECT_EQ(app1, app1_obtained);
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_InvalidPvValueType) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - // Incorrect data type for pv. See comment in machine createAllInstalledApps
|
| - // test.
|
| - // It is important that this value is alphabetically before the other AppIds.
|
| - // This allows us to test that processing continues despite the bad pv.
|
| - const TCHAR* const kInvalidPvTypeAppId =
|
| - _T("{0150B619-867C-4985-B193-ED309A23EE36}");
|
| - const CString invalid_pv_type_clients_key =
|
| - AppendRegKeyPath(USER_REG_CLIENTS, kInvalidPvTypeAppId);
|
| - const DWORD kInvalidPvDword = 0x3039;
|
| - const TCHAR* const kInvalidPvDwordAsString = _T("\x3039");
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(invalid_pv_type_clients_key,
|
| - kRegValueProductVersion,
|
| - kInvalidPvDword));
|
| - EXPECT_TRUE(RegKey::HasValue(invalid_pv_type_clients_key,
|
| - kRegValueProductVersion));
|
| - DWORD value_type = REG_SZ;
|
| - EXPECT_SUCCEEDED(RegKey::GetValueType(invalid_pv_type_clients_key,
|
| - kRegValueProductVersion,
|
| - &value_type));
|
| - EXPECT_NE(REG_SZ, value_type);
|
| - App* invalid_pv_app = CreateExpectedApp(kInvalidPvTypeAppId);
|
| - invalid_pv_app->current_version()->set_version(kInvalidPvDwordAsString);
|
| - invalid_pv_app->set_days_since_last_active_ping(-1);
|
| - invalid_pv_app->set_days_since_last_roll_call(-1);
|
| - SetDisplayName(kDefaultAppName, invalid_pv_app);
|
| -
|
| - {
|
| - // An assert occurs when reading the wrong value type.
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| - }
|
| -
|
| - EXPECT_EQ(3, app_bundle_->GetNumberOfApps());
|
| -
|
| - // The invalid pv app is added to the bundle with an unreadable pv.
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(kInvalidPvTypeAppId, app0->app_guid_string());
|
| - EXPECT_STREQ(kInvalidPvDwordAsString, app0->current_version()->version());
|
| - EXPECT_SUCCEEDED(invalid_pv_app->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*invalid_pv_app, *app0);
|
| -
|
| - App* app1 = app_bundle_->GetApp(1);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app1->app_guid_string());
|
| - EXPECT_SUCCEEDED(expected_app0->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app0, *app1);
|
| -
|
| - App* app2 = app_bundle_->GetApp(2);
|
| - EXPECT_STREQ(CString(kGuid2).MakeUpper(), app2->app_guid_string());
|
| - SetDisplayName(kDefaultAppName, expected_app1);
|
| - EXPECT_SUCCEEDED(expected_app1->put_isEulaAccepted(VARIANT_TRUE));
|
| - ValidateExpectedValues(*expected_app1, *app2);
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_NoAppsRegistered) {
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(0, app_bundle_->GetNumberOfApps());
|
| -
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FALSE(app_bundle_->GetApp(0));
|
| - }
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_OneAppRegistered) {
|
| - CString clients_key_name = AppendRegKeyPath(USER_REG_CLIENTS, kGuid1);
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(clients_key_name,
|
| - kRegValueProductVersion,
|
| - _T("1.0.0.0")));
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid1))); // Avoid assert.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(CString(kGuid1).MakeUpper(), app0->app_guid_string());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_AfterUpdateCheck) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid4))); // Avoid assert.
|
| -
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - app_bundle_->CompleteAsyncCall(); // Simulate thread completion.
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->createAllInstalledApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createApp_After_createInstalledApp) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid2), &app1_created));
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createApp_createAllInstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid4))); // Avoid assert.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createInstalledApp_After_createApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| -
|
| - App* app1_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid2), &app1_created));
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createInstalledApp_After_createAllInstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid4))); // Avoid assert.
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app0_created));
|
| -}
|
| -
|
| -TEST_F(AppBundleInitializedUserTest, createAllInstalledApps_After_createApp) {
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app0_created));
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->createAllInstalledApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_After_createInstalledApp) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->createAllInstalledApps());
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest,
|
| - createAllInstalledApps_Twice) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - App* app0_created = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1),
|
| - &app0_created));
|
| -
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->createAllInstalledApps());
|
| -}
|
| -
|
| -// TODO(omaha): Enable if we end up needing such a function.
|
| -#if 0
|
| -TEST_F(AppBundlePopulatedRegistryMachineTest, createUninstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createUninstalledApps());
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(kGuid3, app0->app_guid_string());
|
| - ValidateExpectedValues(*expected_app2, *app0);
|
| -}
|
| -
|
| -TEST_F(AppBundlePopulatedRegistryUserTest, createUninstalledApps) {
|
| - App *expected_app0, *expected_app1, *expected_app2;
|
| - PopulateDataAndRegistryForRegisteredAndUnInstalledAppsTests(&expected_app0,
|
| - &expected_app1,
|
| - &expected_app2);
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->createUninstalledApps());
|
| - EXPECT_EQ(1, app_bundle_->GetNumberOfApps());
|
| -
|
| - App* app0 = app_bundle_->GetApp(0);
|
| - EXPECT_STREQ(kGuid3, app0->app_guid_string());
|
| - ValidateExpectedValues(*expected_app2, *app0);
|
| -}
|
| -#endif
|
| -
|
| -//
|
| -// State tests.
|
| -//
|
| -
|
| -class AppBundleStateUserTest : public AppBundleTest {
|
| - protected:
|
| - AppBundleStateUserTest()
|
| - : AppBundleTest(false),
|
| - hive_override_key_name_(kRegistryHiveOverrideRoot) {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleTest::SetUp();
|
| -
|
| - RegKey::DeleteKey(hive_override_key_name_);
|
| - OverrideRegistryHives(hive_override_key_name_);
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - RestoreRegistryHives();
|
| - RegKey::DeleteKey(hive_override_key_name_);
|
| -
|
| - AppBundleTest::TearDown();
|
| - }
|
| -
|
| - // Writing name avoids needing to create the ResourceManager.
|
| - void CreateClientsKeyForApp1() {
|
| - CString clients_key = AppendRegKeyPath(USER_REG_CLIENTS, kGuid1);
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(clients_key,
|
| - kRegValueProductVersion,
|
| - _T("1.2.3.4")));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(clients_key,
|
| - kRegValueAppName,
|
| - _T("Test App")));
|
| - }
|
| -
|
| - CString hive_override_key_name_;
|
| -};
|
| -
|
| -
|
| -class AppBundleStateInitUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStateInitUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| -
|
| - // Nothing to do since the budle starts in this state.
|
| - }
|
| -};
|
| -
|
| -class AppBundleStateInitializedUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStateInitializedUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayName(CComBSTR(_T("My Bundle"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayLanguage(CComBSTR(_T("en"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->initialize());
|
| - }
|
| -};
|
| -
|
| -class AppBundleStateBusyUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStateBusyUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| -
|
| - DummyUserWorkItem dummy_work_item;
|
| - app_bundle_->set_user_work_item(&dummy_work_item);
|
| -
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStateBusy);
|
| - }
|
| -};
|
| -
|
| -class AppBundleStateReadyUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStateReadyUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayName(CComBSTR(_T("My Bundle"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayLanguage(CComBSTR(_T("en"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->initialize());
|
| -
|
| - // In all cases, the bundle should have at least one app.
|
| - // The downloadPackage test needs an installed app.
|
| - CreateClientsKeyForApp1();
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| -
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStateReady);
|
| - }
|
| -};
|
| -
|
| -class AppBundleStatePausedUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStatePausedUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStatePaused);
|
| - }
|
| -};
|
| -
|
| -class AppBundleStateStoppedUserTest : public AppBundleStateUserTest {
|
| - protected:
|
| - AppBundleStateStoppedUserTest() : AppBundleStateUserTest() {}
|
| -
|
| - virtual void SetUp() {
|
| - AppBundleStateUserTest::SetUp();
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStateStopped);
|
| - }
|
| -};
|
| -
|
| -// Init.
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, put_altTokens) {
|
| - CAccessToken access_token;
|
| - access_token.GetProcessToken(TOKEN_DUPLICATE);
|
| - ULONG_PTR process_token =
|
| - reinterpret_cast<ULONG_PTR>(access_token.GetHandle());
|
| - EXPECT_SUCCEEDED(app_bundle_->put_altTokens(process_token,
|
| - process_token,
|
| - ::GetCurrentProcessId()));
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, initialize) {
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayName(CComBSTR(_T("My Bundle"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->put_displayLanguage(CComBSTR(_T("en"))));
|
| - EXPECT_SUCCEEDED(app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, checkForUpdate) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, download) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->download());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, install) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->install());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, updateAllApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, stop) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, pause) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->pause());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, resume) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_FALSE, is_busy);
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, downloadPackage) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1),
|
| - CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -// TODO(omaha): Check the state or remove this function.
|
| -TEST_F(AppBundleStateInitUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitUserTest, CompleteAsyncCall) {
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - app_bundle_->CompleteAsyncCall();
|
| - }
|
| -
|
| - EXPECT_EQ(STATE_INIT, GetBundleState());
|
| -}
|
| -
|
| -// Initialized.
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, put_altTokens) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->put_altTokens(1, 2, 3));
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, initialize) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid1))); // Avoid assert.
|
| -
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, checkForUpdate) {
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, CheckForUpdateAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -
|
| - EXPECT_FALSE(app_bundle_->is_auto_update());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, download) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->download());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, install) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->install());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, updateAllApps) {
|
| - CreateClientsKeyForApp1();
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - AppendRegKeyPath(USER_REG_CLIENT_STATE, kGuid1))); // Avoid assert.
|
| -
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, UpdateAllAppsAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -
|
| - EXPECT_TRUE(app_bundle_->is_auto_update());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, stop) {
|
| - EXPECT_SUCCEEDED(app_bundle_->stop());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, pause) {
|
| - EXPECT_SUCCEEDED(app_bundle_->pause());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, resume) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_FALSE, is_busy);
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -// downloadPackage() returns E_INVALIDARG because the app has no packages.
|
| -// TODO(omaha): Add the package so downloadPackage can succeed.
|
| -TEST_F(AppBundleStateInitializedUserTest, downloadPackage) {
|
| - CreateClientsKeyForApp1();
|
| - App* app = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_EQ(
|
| - E_INVALIDARG,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1), CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -
|
| - EXPECT_FALSE(app_bundle_->is_auto_update());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateInitializedUserTest, CompleteAsyncCall) {
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - app_bundle_->CompleteAsyncCall();
|
| - }
|
| -
|
| - EXPECT_EQ(STATE_INITIALIZED, GetBundleState());
|
| -}
|
| -
|
| -// Busy.
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, put_altTokens) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->put_altTokens(1, 2, 3));
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, initialize) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, checkForUpdate) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, download) {
|
| - EXPECT_EQ(GOOPDATE_E_NON_BLOCKING_CALL_PENDING, app_bundle_->download());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, install) {
|
| - EXPECT_EQ(GOOPDATE_E_NON_BLOCKING_CALL_PENDING, app_bundle_->install());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, updateAllApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, stop_Succeeds) {
|
| - EXPECT_CALL(*worker_, Stop(app_bundle_.get()))
|
| - .WillOnce(Return(S_OK));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->stop());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, stop_Fails) {
|
| - EXPECT_CALL(*worker_, Stop(app_bundle_.get()))
|
| - .WillOnce(Return(kKnownError));
|
| -
|
| - EXPECT_EQ(kKnownError, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, pause_Succeeds) {
|
| - EXPECT_CALL(*worker_, Pause(app_bundle_.get()))
|
| - .WillOnce(Return(S_OK));
|
| -
|
| - EXPECT_EQ(S_OK, app_bundle_->pause());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, pause_Fails) {
|
| - EXPECT_CALL(*worker_, Pause(_))
|
| - .WillOnce(Return(kKnownError));
|
| -
|
| - EXPECT_EQ(kKnownError, app_bundle_->pause());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, resume) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_TRUE, is_busy);
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, downloadPackage) {
|
| - EXPECT_EQ(GOOPDATE_E_NON_BLOCKING_CALL_PENDING,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1),
|
| - CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateBusyUserTest, CompleteAsyncCall) {
|
| - app_bundle_->CompleteAsyncCall();
|
| -
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -// Ready.
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(1, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_TRUE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, put_altTokens) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->put_altTokens(1, 2, 3));
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, initialize) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, checkForUpdate) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, download) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, DownloadAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->download());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -
|
| - EXPECT_FALSE(app_bundle_->is_auto_update());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, install) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - EXPECT_CALL(*worker_, DownloadAndInstallAsync(_))
|
| - .WillOnce(SetWorkItem(&dummy_work_item));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->install());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -
|
| - EXPECT_FALSE(app_bundle_->is_auto_update());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, updateAllApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, stop) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, pause) {
|
| - EXPECT_SUCCEEDED(app_bundle_->pause());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, resume) {
|
| - EXPECT_SUCCEEDED(app_bundle_->resume());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_FALSE, is_busy);
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -// downloadPackage() returns E_INVALIDARG because the app has no packages.
|
| -// TODO(omaha): Add the package so downloadPackage can succeed.
|
| -TEST_F(AppBundleStateReadyUserTest, downloadPackage) {
|
| - EXPECT_EQ(
|
| - E_INVALIDARG,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1), CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateReadyUserTest, CompleteAsyncCall) {
|
| - {
|
| - ExpectAsserts expect_asserts;
|
| - app_bundle_->CompleteAsyncCall();
|
| - }
|
| -
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -// Paused.
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, put_altTokens) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->put_altTokens(1, 2, 3));
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, initialize) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, checkForUpdate) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, download) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->download());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, install) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->install());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, updateAllApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -// This may change when implemented.
|
| -TEST_F(AppBundleStatePausedUserTest, stop) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, pause) {
|
| - EXPECT_SUCCEEDED(app_bundle_->pause());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, resume_Succeeds_AsyncCallNotCompleted) {
|
| - EXPECT_CALL(*worker_, Resume(app_bundle_.get()))
|
| - .WillOnce(Return(S_OK));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->resume());
|
| - EXPECT_EQ(STATE_BUSY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, resume_Succeeds_AsyncCallCompleted) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - app_bundle_->set_user_work_item(&dummy_work_item);
|
| - app_bundle_->CompleteAsyncCall();
|
| -
|
| - EXPECT_CALL(*worker_, Resume(app_bundle_.get()))
|
| - .WillOnce(Return(S_OK));
|
| -
|
| - EXPECT_SUCCEEDED(app_bundle_->resume());
|
| - EXPECT_EQ(STATE_READY, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, resume_Fails_AsyncCallNotCompleted) {
|
| - EXPECT_CALL(*worker_, Resume(app_bundle_.get()))
|
| - .WillOnce(Return(kKnownError));
|
| -
|
| - EXPECT_EQ(kKnownError, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, resume_Fails_AsyncCallCompleted) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - app_bundle_->set_user_work_item(&dummy_work_item);
|
| - app_bundle_->CompleteAsyncCall();
|
| -
|
| - EXPECT_CALL(*worker_, Resume(app_bundle_.get()))
|
| - .WillOnce(Return(kKnownError));
|
| -
|
| - EXPECT_EQ(kKnownError, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_FALSE, is_busy);
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, downloadPackage) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1),
|
| - CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStatePausedUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -// Remains Paused until resumed.
|
| -TEST_F(AppBundleStatePausedUserTest, CompleteAsyncCall) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - app_bundle_->set_user_work_item(&dummy_work_item);
|
| - SetAppBundleStateForUnitTest(app_bundle_.get(),
|
| - new fsm::AppBundleStatePaused);
|
| -
|
| - app_bundle_->CompleteAsyncCall();
|
| -
|
| - EXPECT_EQ(STATE_PAUSED, GetBundleState());
|
| -}
|
| -
|
| -// Stopped.
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, Properties) {
|
| - TestPropertyReflexiveness();
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, CountAndItem) {
|
| - long num_apps = 0; // NOLINT
|
| - EXPECT_SUCCEEDED(app_bundle_->get_Count(&num_apps));
|
| - EXPECT_EQ(0, num_apps);
|
| -
|
| - App* app0_obtained = NULL;
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_INDEX),
|
| - app_bundle_->get_Item(0, &app0_obtained));
|
| - EXPECT_FALSE(app0_obtained);
|
| -
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, put_altTokens) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->put_altTokens(1, 2, 3));
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, initialize) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->initialize());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, createApp) {
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createApp(CComBSTR(kGuid1), &app));
|
| -
|
| - EXPECT_EQ(S_OK, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, createInstalledApp) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createInstalledApp(CComBSTR(kGuid1), &app));
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, createAllInstalledApps) {
|
| - CreateClientsKeyForApp1();
|
| -
|
| - App* app = NULL;
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->createAllInstalledApps());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, checkForUpdate) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->checkForUpdate());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, download) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->download());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, install) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->install());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, updateAllApps) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->updateAllApps());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, stop) {
|
| - EXPECT_EQ(S_OK, app_bundle_->stop());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, pause) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->pause());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, resume) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED, app_bundle_->resume());
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, isBusy) {
|
| - VARIANT_BOOL is_busy = VARIANT_TRUE;
|
| - EXPECT_SUCCEEDED(app_bundle_->isBusy(&is_busy));
|
| - EXPECT_EQ(VARIANT_FALSE, is_busy);
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, downloadPackage) {
|
| - EXPECT_EQ(GOOPDATE_E_CALL_UNEXPECTED,
|
| - app_bundle_->downloadPackage(CComBSTR(kGuid1),
|
| - CComBSTR(_T("package"))));
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, get_currentState) {
|
| - VARIANT current_state;
|
| - ExpectAsserts expect_asserts; // Not yet implemented.
|
| - EXPECT_EQ(E_NOTIMPL, app_bundle_->get_currentState(¤t_state));
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -TEST_F(AppBundleStateStoppedUserTest, CompleteAsyncCall) {
|
| - DummyUserWorkItem dummy_work_item;
|
| - app_bundle_->set_user_work_item(&dummy_work_item);
|
| -
|
| - app_bundle_->CompleteAsyncCall();
|
| -
|
| - EXPECT_EQ(STATE_STOPPED, GetBundleState());
|
| -}
|
| -
|
| -} // namespace omaha
|
|
|