Index: third_party/libaddressinput/chromium/cpp/test/storage_test_runner.cc |
diff --git a/third_party/libaddressinput/chromium/cpp/test/storage_test_runner.cc b/third_party/libaddressinput/chromium/cpp/test/storage_test_runner.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..01f06300f23efcbe4069f323bcec2fcc69ad9088 |
--- /dev/null |
+++ b/third_party/libaddressinput/chromium/cpp/test/storage_test_runner.cc |
@@ -0,0 +1,84 @@ |
+// Copyright (C) 2013 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 "storage_test_runner.h" |
+ |
+#include <libaddressinput/callback.h> |
+ |
+#include <gtest/gtest.h> |
+ |
+namespace i18n { |
+namespace addressinput { |
+ |
+StorageTestRunner::StorageTestRunner(Storage* storage) |
+ : storage_(storage), |
+ success_(false), |
+ key_(), |
+ data_() {} |
+ |
+void StorageTestRunner::RunAllTests() { |
+ EXPECT_NO_FATAL_FAILURE(GetWithoutPutReturnsEmptyData()); |
please use gerrit instead
2013/12/20 02:04:40
Also GetReturnsWhatWasPut() and SecondPutOverwrite
Evan Stade
2013/12/20 03:21:56
Done.
|
+} |
+ |
+void StorageTestRunner::ClearValues() { |
+ success_ = false; |
+ key_.clear(); |
+ data_.clear(); |
+} |
+ |
+scoped_ptr<Storage::Callback> StorageTestRunner::BuildCallback() { |
+ return ::i18n::addressinput::BuildCallback( |
+ this, &StorageTestRunner::OnDataReady); |
+} |
+ |
+void StorageTestRunner::OnDataReady(bool success, |
+ const std::string& key, |
+ const std::string& data) { |
+ success_ = success; |
+ key_ = key; |
+ data_ = data; |
+} |
+ |
+void StorageTestRunner::GetWithoutPutReturnsEmptyData() { |
+ ClearValues(); |
+ storage_->Get("key", BuildCallback()); |
+ |
+ EXPECT_FALSE(success_); |
+ EXPECT_EQ("key", key_); |
+ EXPECT_TRUE(data_.empty()); |
+} |
+ |
+void StorageTestRunner::GetReturnsWhatWasPut() { |
+ ClearValues(); |
+ storage_->Put("key", "value"); |
+ storage_->Get("key", BuildCallback()); |
+ |
+ EXPECT_TRUE(success_); |
+ EXPECT_EQ("key", key_); |
+ EXPECT_EQ("value", data_); |
+} |
+ |
+void StorageTestRunner::SecondPutOverwritesData() { |
+ ClearValues(); |
+ storage_->Put("key", "bad-value"); |
+ storage_->Put("key", "good-value"); |
+ storage_->Get("key", BuildCallback()); |
+ |
+ EXPECT_TRUE(success_); |
+ EXPECT_EQ("key", key_); |
+ EXPECT_EQ("good-value", data_); |
+} |
+ |
+} // addressinput |
+} // i18n |