blob: f710ac53892eea337ad106634794f0991534b840 [file] [log] [blame]
// Copyright 2014 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.
#ifndef THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_
#define THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/storage.h"
#include <memory>
#include <string>
#include "base/macros.h"
namespace autofill {
// A test sutie for ::i18n::addressinput::Storage.
class StorageTestRunner {
public:
// Does not take ownership of |storage|.
explicit StorageTestRunner(::i18n::addressinput::Storage* storage);
~StorageTestRunner();
// Runs all the tests from the standard test suite.
void RunAllTests();
private:
void ClearValues();
std::unique_ptr<::i18n::addressinput::Storage::Callback> BuildCallback();
void OnDataReady(bool success, const std::string& key, std::string* data);
// Test suite.
void GetWithoutPutReturnsEmptyData();
void GetReturnsWhatWasPut();
void SecondPutOverwritesData();
::i18n::addressinput::Storage* storage_; // weak
bool success_;
std::string key_;
std::string data_;
DISALLOW_COPY_AND_ASSIGN(StorageTestRunner);
};
} // namespace autofill
#endif // THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_