# Copyright 2016 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.

import("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("storage") {
  sources = [
    "cached_storage_area.cc",
    "cached_storage_area.h",
    "dom_window_storage.cc",
    "dom_window_storage.h",
    "dom_window_storage_controller.cc",
    "dom_window_storage_controller.h",
    "inspector_dom_storage_agent.cc",
    "inspector_dom_storage_agent.h",
    "storage_area.cc",
    "storage_area.h",
    "storage_area_map.cc",
    "storage_area_map.h",
    "storage_controller.cc",
    "storage_controller.h",
    "storage_event.cc",
    "storage_event.h",
    "storage_namespace.cc",
    "storage_namespace.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "cached_storage_area_test.cc",
    "storage_area_map_test.cc",
    "storage_controller_test.cc",
    "storage_namespace_test.cc",
    "testing/fake_area_source.h",
    "testing/mock_storage_area.cc",
    "testing/mock_storage_area.h",
  ]

  configs += [
    "//third_party/blink/renderer:config",
    "//third_party/blink/renderer:inside_blink",
    "//third_party/blink/renderer/core:blink_core_pch",
  ]

  deps = [
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public:test_headers",
    "//third_party/blink/renderer/modules",
    "//third_party/blink/renderer/platform",
    "//third_party/blink/renderer/platform/wtf",
  ]
}
