Index: chromeos/dbus/fake_sms_client.cc |
diff --git a/chromeos/dbus/fake_sms_client.cc b/chromeos/dbus/fake_sms_client.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eb3c8ab081a33d01396fc81122a4355729864d23 |
--- /dev/null |
+++ b/chromeos/dbus/fake_sms_client.cc |
@@ -0,0 +1,55 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <string> |
+ |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
+#include "base/callback.h" |
+#include "base/command_line.h" |
+#include "base/location.h" |
+#include "base/message_loop/message_loop.h" |
+#include "base/values.h" |
+#include "chromeos/chromeos_switches.h" |
+#include "chromeos/dbus/fake_sms_client.h" |
+#include "dbus/object_path.h" |
+ |
+namespace chromeos { |
+ |
+FakeSMSClient::FakeSMSClient() : weak_ptr_factory_(this) {} |
+ |
+FakeSMSClient::~FakeSMSClient() {} |
+ |
+void FakeSMSClient::Init(dbus::Bus* bus) {} |
+ |
+void FakeSMSClient::GetAll(const std::string& service_name, |
+ const dbus::ObjectPath& object_path, |
+ const GetAllCallback& callback) { |
+ if (!CommandLine::ForCurrentProcess()->HasSwitch( |
+ chromeos::switches::kSmsTestMessages)) |
+ return; |
+ |
+ // Ownership passed to callback |
+ base::DictionaryValue* sms = new base::DictionaryValue(); |
+ sms->SetString("Number", "000-000-0000"); |
+ sms->SetString("Text", "FakeSMSClient: Test Message: " + object_path.value()); |
+ sms->SetString("Timestamp", "Fri Jun 8 13:26:04 EDT 2012"); |
+ |
+ // Run callback asynchronously. |
+ if (callback.is_null()) |
+ return; |
+ base::MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&FakeSMSClient::OnGetAll, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ base::Owned(sms), |
+ callback)); |
+} |
+ |
+void FakeSMSClient::OnGetAll(base::DictionaryValue* sms, |
+ const GetAllCallback& callback) { |
+ callback.Run(*sms); |
+} |
+ |
+} // namespace chromeos |