| // 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. | |
| #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ | |
| #define NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ | |
| #include <string> | |
| #include "base/callback.h" | |
| #include "starboard/types.h" | |
| namespace base { | |
| class FilePath; | |
| } | |
| namespace disk_cache { | |
| namespace simple_util { | |
| // Immutable array with compile-time bound-checking. | |
| template <typename T, size_t Size> | |
| class ImmutableArray { | |
| public: | |
| static const size_t size = Size; | |
| ImmutableArray(const base::Callback<T (size_t index)>& initializer) { | |
| for (size_t i = 0; i < size; ++i) | |
| data_[i] = initializer.Run(i); | |
| } | |
| template <size_t Index> | |
| const T& at() const { | |
| static_assert(Index < size, "array out of bounds"); | |
| return data_[Index]; | |
| } | |
| private: | |
| T data_[size]; | |
| }; | |
| // Creates a corrupt file to be used in tests. | |
| bool CreateCorruptFileForTests(const std::string& key, | |
| const base::FilePath& cache_path); | |
| // Removes the key SHA256 from an entry. | |
| bool RemoveKeySHA256FromEntry(const std::string& key, | |
| const base::FilePath& cache_path); | |
| // Modifies the key SHA256 from an entry so that it is corrupt. | |
| bool CorruptKeySHA256FromEntry(const std::string& key, | |
| const base::FilePath& cache_path); | |
| // Modifies the stream 0 length field from an entry so it is invalid. | |
| bool CorruptStream0LengthFromEntry(const std::string& key, | |
| const base::FilePath& cache_path); | |
| } // namespace simple_util | |
| } // namespace disk_cache | |
| #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ |