1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/libaddressinput/src/cpp/include/libaddressinput/storage.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string> 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/basictypes.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/scoped_ptr.h" 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace autofill { 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// A test sutie for ::i18n::addressinput::Storage. 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass StorageTestRunner { 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Does not take ownership of |storage|. 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch explicit StorageTestRunner(::i18n::addressinput::Storage* storage); 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ~StorageTestRunner(); 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Runs all the tests from the standard test suite. 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void RunAllTests(); 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void ClearValues(); 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr< ::i18n::addressinput::Storage::Callback> BuildCallback(); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void OnDataReady(bool success, const std::string& key, std::string* data); 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Test suite. 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void GetWithoutPutReturnsEmptyData(); 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void GetReturnsWhatWasPut(); 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SecondPutOverwritesData(); 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ::i18n::addressinput::Storage* storage_; // weak 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool success_; 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch std::string key_; 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch std::string data_; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(StorageTestRunner); 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace autofill 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_STORAGE_TEST_RUNNER_H_ 48