Home | History | Annotate | Download | only in simple
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_
      6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback.h"
     12 
     13 namespace base {
     14 class FilePath;
     15 }
     16 
     17 namespace disk_cache {
     18 namespace simple_util {
     19 
     20 // Immutable array with compile-time bound-checking.
     21 template <typename T, size_t Size>
     22 class ImmutableArray {
     23  public:
     24   static const size_t size = Size;
     25 
     26   ImmutableArray(const base::Callback<T (size_t index)>& initializer) {
     27     for (size_t i = 0; i < size; ++i)
     28       data_[i] = initializer.Run(i);
     29   }
     30 
     31   template <size_t Index>
     32   const T& at() const {
     33     COMPILE_ASSERT(Index < size, array_out_of_bounds);
     34     return data_[Index];
     35   }
     36 
     37  private:
     38   T data_[size];
     39 };
     40 
     41 // Creates a corrupt file to be used in tests.
     42 bool CreateCorruptFileForTests(const std::string& key,
     43                                const base::FilePath& cache_path);
     44 
     45 }  // namespace simple_backend
     46 }  // namespace disk_cache
     47 
     48 #endif  // NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_
     49