PM: Add a time provider.

This implements a time provider interface, as well as a real and a fake
implementation.

BUG=chromium:341205
TEST=Unit tests.

Change-Id: Ibc6a865ab868e0f8c760c003dc970b7987896a36
Reviewed-on: https://chromium-review.googlesource.com/190247
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/variable.h b/policy_manager/variable.h
index be3fdb1..b00eca4 100644
--- a/policy_manager/variable.h
+++ b/policy_manager/variable.h
@@ -145,6 +145,9 @@
   FRIEND_TEST(PmRealShillProviderTest, ReadChangedValuesConnectedViaEthernet);
   FRIEND_TEST(PmRealShillProviderTest, ReadChangedValuesConnectedViaVpn);
   FRIEND_TEST(PmRealShillProviderTest, ReadChangedValuesConnectedTwoSignals);
+  friend class PmRealTimeProviderTest;
+  FRIEND_TEST(PmRealTimeProviderTest, CurrDateValid);
+  FRIEND_TEST(PmRealTimeProviderTest, CurrHourValid);
 
   Variable(const std::string& name, VariableMode mode)
       : BaseVariable(name, mode) {}