1 // Copyright 2014 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.
6 #include "core/css/MediaQueryList.h"
8 #include "bindings/core/v8/V8Binding.h"
9 #include "core/css/MediaList.h"
10 #include "core/css/MediaQueryListListener.h"
11 #include "core/css/MediaQueryMatcher.h"
12 #include "core/dom/Document.h"
13 #include <gtest/gtest.h>
17 TEST(MediaQueryListTest, CrashInStop)
19 V8TestingScope scope(v8::Isolate::GetCurrent());
20 RefPtrWillBeRawPtr<Document> document = Document::create();
21 RefPtrWillBeRawPtr<MediaQueryList> list = MediaQueryList::create(document.get(), MediaQueryMatcher::create(*document), MediaQuerySet::create());
22 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(scope.isolate());
23 list->addListener(MediaQueryListListener::create(scope.scriptState(), ScriptValue(scope.scriptState(), templ->GetFunction())));
24 // Now, MediaQueryList and MediaQueryListListener have reference cycle. We
26 MediaQueryList* rawList = list.release().get();
28 // This test passes if it's not crashed.