1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_POLICY_CLOUD_EXTERNAL_DATA_MANAGER_BASE_TEST_UTIL_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_POLICY_CLOUD_EXTERNAL_DATA_MANAGER_BASE_TEST_UTIL_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include <string> 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/callback_forward.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace base { 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class DictionaryValue; 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace policy { 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class CloudPolicyCore; 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace test { 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Passes |data| to |destination| and invokes |done_callback| to indicate that 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// the |data| has been retrieved. 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void ExternalDataFetchCallback(scoped_ptr<std::string>* destination, 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const base::Closure& done_callback, 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<std::string> data); 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Constructs a value that points a policy referencing external data at |url| 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// and sets the expected hash of the external data to that of |data|. 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)scoped_ptr<base::DictionaryValue> ConstructExternalDataReference( 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& url, 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& data); 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// TODO(bartfab): Makes an arbitrary |policy| in |core| reference external data 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// as specified in |metadata|. This is only done because there are no policies 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// that reference external data yet. Once the first such policy is added, it 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// will be sufficient to set its value to |metadata| and this method should be 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// removed. 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void SetExternalDataReference(CloudPolicyCore* core, 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& policy, 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<base::DictionaryValue> metadata); 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace test 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace policy 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_POLICY_CLOUD_EXTERNAL_DATA_MANAGER_BASE_TEST_UTIL_H_ 48