blob: 74fc3b460685d79c3581173b3888f1d011fd707d [file] [log] [blame]
// Copyright 2018 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 THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_TESTING_FAKE_AREA_SOURCE_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_TESTING_FAKE_AREA_SOURCE_H_
#include "third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h"
#include "third_party/blink/renderer/modules/storage/cached_storage_area.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
namespace blink {
class FakeAreaSource : public GarbageCollected<FakeAreaSource>,
public CachedStorageArea::Source {
public:
explicit FakeAreaSource(const KURL& page_url) : page_url_(page_url) {}
KURL GetPageUrl() const override { return page_url_; }
bool EnqueueStorageEvent(const String& key,
const String& old_value,
const String& new_value,
const String& url) override {
events.push_back(Event{key, old_value, new_value, url});
return true;
}
blink::WebScopedVirtualTimePauser CreateWebScopedVirtualTimePauser(
const char* name,
WebScopedVirtualTimePauser::VirtualTaskDuration duration) override {
return blink::WebScopedVirtualTimePauser();
}
struct Event {
String key, old_value, new_value, url;
bool operator==(const Event& other) const {
return std::tie(key, old_value, new_value, url) ==
std::tie(other.key, other.old_value, other.new_value, other.url);
}
};
Vector<Event> events;
private:
KURL page_url_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_TESTING_FAKE_AREA_SOURCE_H_