blob: e3702748c6ce848c3050ac19e33b0e2289381c7f [file] [log] [blame]
Alex Deymo63784a52014-05-28 10:46:14 -07001// Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "update_engine/update_manager/real_system_provider.h"
6
Ben Chan02f7c1d2014-10-18 15:18:02 -07007#include <memory>
8
Alex Deymo63784a52014-05-28 10:46:14 -07009#include <base/time/time.h>
10#include <gtest/gtest.h>
11
12#include "update_engine/fake_hardware.h"
13#include "update_engine/update_manager/umtest_utils.h"
14
Ben Chan02f7c1d2014-10-18 15:18:02 -070015using std::unique_ptr;
16
Alex Deymo63784a52014-05-28 10:46:14 -070017namespace chromeos_update_manager {
18
19class UmRealSystemProviderTest : public ::testing::Test {
20 protected:
21 virtual void SetUp() {
22 provider_.reset(new RealSystemProvider(&fake_hardware_));
23 EXPECT_TRUE(provider_->Init());
24 }
25
26 chromeos_update_engine::FakeHardware fake_hardware_;
Ben Chan02f7c1d2014-10-18 15:18:02 -070027 unique_ptr<RealSystemProvider> provider_;
Alex Deymo63784a52014-05-28 10:46:14 -070028};
29
30TEST_F(UmRealSystemProviderTest, InitTest) {
Alex Vakulenko88b591f2014-08-28 16:48:57 -070031 EXPECT_NE(nullptr, provider_->var_is_normal_boot_mode());
32 EXPECT_NE(nullptr, provider_->var_is_official_build());
33 EXPECT_NE(nullptr, provider_->var_is_oobe_complete());
Alex Deymo63784a52014-05-28 10:46:14 -070034}
35
36TEST_F(UmRealSystemProviderTest, IsOOBECompleteTrue) {
37 fake_hardware_.SetIsOOBEComplete(base::Time());
38 UmTestUtils::ExpectVariableHasValue(true, provider_->var_is_oobe_complete());
39}
40
41TEST_F(UmRealSystemProviderTest, IsOOBECompleteFalse) {
42 fake_hardware_.UnsetIsOOBEComplete();
43 UmTestUtils::ExpectVariableHasValue(false, provider_->var_is_oobe_complete());
44}
45
46} // namespace chromeos_update_manager