Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / css / MediaQueryListTest.cpp
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.
4
5 #include "config.h"
6 #include "core/css/MediaQueryList.h"
7
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>
14
15 namespace blink {
16
17 TEST(MediaQueryListTest, CrashInStop)
18 {
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
25     // can clear |list|.
26     MediaQueryList* rawList = list.release().get();
27     rawList->stop();
28     // This test passes if it's not crashed.
29 }
30
31 }