#include "third_party/blink/renderer/modules/presentation/presentation_availability.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
#include "third_party/blink/renderer/modules/presentation/presentation_request.h"
#include "third_party/blink/renderer/platform/testing/task_environment.h"
#include "third_party/blink/renderer/platform/testing/url_test_helpers.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
#include "v8/include/v8.h"
namespace blink {
namespace {
TEST(PresentationAvailabilityTest, NoPageVisibilityChangeAfterDetach) {
test::TaskEnvironment task_environment;
Page* page = nullptr;
{
V8TestingScope scope;
Vector<KURL> urls;
urls.push_back(url_test_helpers::ToKURL("https://example.com"));
urls.push_back(url_test_helpers::ToKURL("https://another.com"));
Persistent<PresentationAvailability> availability =
PresentationAvailability::Take(scope.GetExecutionContext(), urls,
false);
page = &scope.GetPage();
}
page->SetVisibilityState(mojom::blink::PageVisibilityState::kHidden,
false);
}
}
}