UpdateManager: Do not schedule update checks if booted from removable device.

This abides by the current logic, as found in
UpdateCheckScheduler::Run(). New unit test added to verify this
behavior.

BUG=chromium:358269
TEST=Unit tests.

Change-Id: I5720b2b3c85c7de7f64eec4f7da000d3e13c778d
Reviewed-on: https://chromium-review.googlesource.com/207230
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/update_manager/fake_system_provider.h b/update_manager/fake_system_provider.h
index a05f630..47cd5ac 100644
--- a/update_manager/fake_system_provider.h
+++ b/update_manager/fake_system_provider.h
@@ -27,13 +27,20 @@
     return &var_is_oobe_complete_;
   }
 
+  virtual FakeVariable<bool>* var_is_boot_device_removable() override {
+    return &var_is_boot_device_removable_;
+  }
+
  private:
-  FakeVariable<bool> var_is_normal_boot_mode_{
-      "is_normal_boot_mode", kVariableModeConst};
-  FakeVariable<bool> var_is_official_build_{
-      "is_official_build", kVariableModeConst};
-  FakeVariable<bool> var_is_oobe_complete_{
-      "is_oobe_complete", kVariableModePoll};
+  FakeVariable<bool> var_is_normal_boot_mode_{  // NOLINT(whitespace/braces)
+    "is_normal_boot_mode", kVariableModeConst};
+  FakeVariable<bool> var_is_official_build_{  // NOLINT(whitespace/braces)
+    "is_official_build", kVariableModeConst};
+  FakeVariable<bool> var_is_oobe_complete_{  // NOLINT(whitespace/braces)
+    "is_oobe_complete", kVariableModePoll};
+  FakeVariable<bool>
+      var_is_boot_device_removable_{  // NOLINT(whitespace/braces)
+        "is_boot_device_removable", kVariableModePoll};
 
   DISALLOW_COPY_AND_ASSIGN(FakeSystemProvider);
 };