зеркало из https://github.com/mozilla/gecko-dev.git
Bug 368994. move mochitests near the code they test. round 7. r=bzbarsky
This commit is contained in:
Родитель
79a44c3df1
Коммит
b80cfd9871
|
@ -52,6 +52,7 @@ _TEST_FILES = test_bug5141.html \
|
|||
test_bug276037-1.html \
|
||||
test_bug276037-2.xhtml \
|
||||
test_bug308484.html \
|
||||
test_bug311681.xml \
|
||||
test_bug337631.html \
|
||||
test_bug338541.xhtml \
|
||||
test_bug338679.html \
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=311681
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 311681</title>
|
||||
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=311681">Mozilla Bug 311681</a>
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
// Setup script
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
// Make sure to trigger the hashtable case by asking for enough elements
|
||||
// by ID.
|
||||
for (var i = 0; i < 256; ++i) {
|
||||
var x = document.getElementById(i);
|
||||
}
|
||||
|
||||
// save off the document.getElementById function, since getting it as a
|
||||
// property off the document it causes a content flush.
|
||||
var fun = document.getElementById;
|
||||
|
||||
// Slot for our initial element with id "content"
|
||||
var testNode;
|
||||
|
||||
function getCont() {
|
||||
return fun.call(document, "content");
|
||||
}
|
||||
|
||||
function testClone() {
|
||||
// Test to make sure that if we have multiple nodes with the same ID in
|
||||
// a document we don't forget about one of them when the other is
|
||||
// removed.
|
||||
var newParent = $("display");
|
||||
var node = testNode.cloneNode(true);
|
||||
isnot(node, testNode, "Clone should be a different node");
|
||||
|
||||
newParent.appendChild(node);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
todo(getCont() == testNode, "Should be getting orig node pre-flush 1");
|
||||
is(getCont(), node, "XML does it differently, for now");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
todo(getCont() == testNode, "Should be getting orig node post-flush 1");
|
||||
is(getCont(), node, "XML does it differently, for now");
|
||||
|
||||
clear(newParent);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 2");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 2");
|
||||
|
||||
node = testNode.cloneNode(true);
|
||||
newParent.appendChild(node);
|
||||
testNode.parentNode.removeChild(testNode);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), node, "Should be getting clone pre-flush");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), node, "Should be getting clone post-flush");
|
||||
|
||||
}
|
||||
|
||||
function clear(node) {
|
||||
while (node.hasChildNodes()) {
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
addLoadEvent(testClone);
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
]]>
|
||||
</script>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
testNode = fun.call(document, "content");
|
||||
// Needs incremental XML parser
|
||||
isnot(testNode, null, "Should have node here");
|
||||
]]>
|
||||
</script>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -47,6 +47,8 @@ include $(topsrcdir)/config/rules.mk
|
|||
_TEST_FILES = test_bug1682.html \
|
||||
test_bug1823.html \
|
||||
test_bug172261.html \
|
||||
test_bug311681.html \
|
||||
test_bug311681.xhtml \
|
||||
test_bug332848.xhtml \
|
||||
test_bug359657.html \
|
||||
$(NULL)
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=311681
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 311681</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=311681">Mozilla Bug 311681</a>
|
||||
<script class="testbody" type="text/javascript">
|
||||
// Setup script
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
// Make sure to trigger the hashtable case by asking for enough elements
|
||||
// by ID.
|
||||
for (var i = 0; i < 256; ++i) {
|
||||
var x = document.getElementById(i);
|
||||
}
|
||||
|
||||
// save off the document.getElementById function, since getting it as a
|
||||
// property off the document it causes a content flush.
|
||||
var fun = document.getElementById;
|
||||
|
||||
// Slot for our initial element with id "content"
|
||||
var testNode;
|
||||
|
||||
function getCont() {
|
||||
return fun.call(document, "content");
|
||||
}
|
||||
|
||||
function testClone() {
|
||||
// Test to make sure that if we have multiple nodes with the same ID in
|
||||
// a document we don't forget about one of them when the other is
|
||||
// removed.
|
||||
var newParent = $("display");
|
||||
var node = testNode.cloneNode(true);
|
||||
isnot(node, testNode, "Clone should be a different node");
|
||||
|
||||
newParent.appendChild(node);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 1");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 1");
|
||||
|
||||
clear(newParent);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 2");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 2");
|
||||
|
||||
node = testNode.cloneNode(true);
|
||||
newParent.appendChild(node);
|
||||
testNode.parentNode.removeChild(testNode);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), node, "Should be getting clone pre-flush");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), node, "Should be getting clone post-flush");
|
||||
|
||||
}
|
||||
|
||||
function clear(node) {
|
||||
while (node.hasChildNodes()) {
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
addLoadEvent(testClone);
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
</script>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<script class="testbody" type="text/javascript">
|
||||
testNode = fun.call(document, "content");
|
||||
isnot(testNode, null, "Should have node here");
|
||||
</script>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=311681
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 311681</title>
|
||||
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=311681">Mozilla Bug 311681</a>
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
// Setup script
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
// Make sure to trigger the hashtable case by asking for enough elements
|
||||
// by ID.
|
||||
for (var i = 0; i < 256; ++i) {
|
||||
var x = document.getElementById(i);
|
||||
}
|
||||
|
||||
// save off the document.getElementById function, since getting it as a
|
||||
// property off the document it causes a content flush.
|
||||
var fun = document.getElementById;
|
||||
|
||||
// Slot for our initial element with id "content"
|
||||
var testNode;
|
||||
|
||||
function getCont() {
|
||||
return fun.call(document, "content");
|
||||
}
|
||||
|
||||
function testClone() {
|
||||
// Test to make sure that if we have multiple nodes with the same ID in
|
||||
// a document we don't forget about one of them when the other is
|
||||
// removed.
|
||||
var newParent = $("display");
|
||||
var node = testNode.cloneNode(true);
|
||||
isnot(node, testNode, "Clone should be a different node");
|
||||
|
||||
newParent.appendChild(node);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 1");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 1");
|
||||
|
||||
clear(newParent);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 2");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 2");
|
||||
|
||||
node = testNode.cloneNode(true);
|
||||
newParent.appendChild(node);
|
||||
testNode.parentNode.removeChild(testNode);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), node, "Should be getting clone pre-flush");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), node, "Should be getting clone post-flush");
|
||||
|
||||
}
|
||||
|
||||
function clear(node) {
|
||||
while (node.hasChildNodes()) {
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
// Actually run the test once the XML parser works incrementally
|
||||
// addLoadEvent(testClone);
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
]]>
|
||||
</script>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
testNode = fun.call(document, "content");
|
||||
// Needs incremental XML parser
|
||||
todo(testNode != null, "Should have node here");
|
||||
]]>
|
||||
</script>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -45,5 +45,9 @@ include $(DEPTH)/config/autoconf.mk
|
|||
MODULE = xuldoc
|
||||
DIRS = public src
|
||||
|
||||
ifdef MOZ_MOCHITEST
|
||||
DIRS += test
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = content/xul/document/test
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug311681.xul \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
|
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=311681
|
||||
-->
|
||||
<window title="Mozilla Bug 311681"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<title>Test for Bug 311681</title>
|
||||
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=311681">Mozilla Bug 311681</a>
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
// Setup script
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
// Make sure to trigger the hashtable case by asking for enough elements
|
||||
// by ID.
|
||||
for (var i = 0; i < 256; ++i) {
|
||||
var x = document.getElementById(i);
|
||||
}
|
||||
|
||||
// save off the document.getElementById function, since getting it as a
|
||||
// property off the document it causes a content flush.
|
||||
var fun = document.getElementById;
|
||||
|
||||
// Slot for our initial element with id "content"
|
||||
var testNode;
|
||||
|
||||
function getCont() {
|
||||
return fun.call(document, "content");
|
||||
}
|
||||
|
||||
function testClone() {
|
||||
// Test to make sure that if we have multiple nodes with the same ID in
|
||||
// a document we don't forget about one of them when the other is
|
||||
// removed.
|
||||
var newParent = $("display");
|
||||
var node = testNode.cloneNode(true);
|
||||
isnot(node, testNode, "Clone should be a different node");
|
||||
|
||||
newParent.appendChild(node);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 1");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 1");
|
||||
|
||||
clear(newParent);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), testNode, "Should be getting orig node pre-flush 2");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), testNode, "Should be getting orig node post-flush 2");
|
||||
|
||||
node = testNode.cloneNode(true);
|
||||
newParent.appendChild(node);
|
||||
testNode.parentNode.removeChild(testNode);
|
||||
|
||||
// Check what getElementById returns, no flushing
|
||||
is(getCont(), node, "Should be getting clone pre-flush");
|
||||
|
||||
// Trigger a layout flush, just in case.
|
||||
var itemHeight = newParent.offsetHeight/10;
|
||||
|
||||
// Check what getElementById returns now.
|
||||
is(getCont(), node, "Should be getting clone post-flush");
|
||||
|
||||
}
|
||||
|
||||
function clear(node) {
|
||||
while (node.hasChildNodes()) {
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
addLoadEvent(testClone);
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
]]>
|
||||
</script>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<script class="testbody" type="text/javascript">
|
||||
<![CDATA[
|
||||
testNode = fun.call(document, "content");
|
||||
// Needs incremental XML parser
|
||||
isnot(testNode, null, "Should have node here");
|
||||
]]>
|
||||
</script>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
|
||||
</window>
|
|
@ -51,4 +51,8 @@ DIRS = \
|
|||
resources \
|
||||
$(NULL)
|
||||
|
||||
ifdef MOZ_MOCHITEST
|
||||
DIRS += test
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = docshell/test
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug344861.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=344861
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 344861</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=344861">Mozilla Bug 344861</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 344861 **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var newwindow = window.open("/", "testwindow", "width=200,height=200");
|
||||
newwindow.onload = function() {
|
||||
is(newwindow.innerHeight, 200, "window.open has correct height dimensions");
|
||||
is(newwindow.innerWidth, 200, "window.open has correct width dimensions");
|
||||
SimpleTest.finish();
|
||||
newwindow.close();
|
||||
}
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
@ -45,6 +45,7 @@ include $(DEPTH)/config/autoconf.mk
|
|||
|
||||
DIRS += dom-level1-core \
|
||||
dom-level2-core \
|
||||
bugs \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = dom/tests/mochitest/bugs
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug308856.html \
|
||||
test_bug333983.html \
|
||||
test_bug342448.html \
|
||||
test_bug345521.html \
|
||||
test_bug351601.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
|
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=308856
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 308856</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=308856">Mozilla Bug 308856</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 308856 **/
|
||||
|
||||
var monkey = 12;
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(function() {
|
||||
is(12,window.monkey,"Window global is correct value");
|
||||
var found = false;
|
||||
for (var p in window) {
|
||||
if (p == "monkey") {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
ok(found, "Global js variables show up when enumerating [Window]");
|
||||
});
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=333983
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 333983</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=333983">Mozilla Bug 333983</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 333983 **/
|
||||
HTMLElement.prototype.foopy = function () { return "foopy"; }
|
||||
|
||||
var foopy = "";
|
||||
try {
|
||||
foopy = document.body.foopy()
|
||||
} catch (ex) {
|
||||
foopy = ex + "";
|
||||
}
|
||||
|
||||
is(foopy, "foopy", "HTMLElement.prototype functions work");
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=342448
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 342448</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=342448">Mozilla Bug 342448</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 342448 **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
try {
|
||||
setTimeout(1, 0);
|
||||
} catch (ex) {}
|
||||
callLater(.1, function() { ok(true, "shouldn't crash when passing a number as the first arg to setTimeout"); SimpleTest.finish(); })
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=345521
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 345521</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=345521">Mozilla Bug 345521</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<a id="testlink" onclick="return 0">test</a><br />
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 345521 **/
|
||||
function hitlink() {
|
||||
var evt = document.createEvent("MouseEvents");
|
||||
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
var isOk = $("testlink").dispatchEvent(evt);
|
||||
ok(isOk, "return 0 should not cancel an event");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(hitlink);
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=351601
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 351601</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=351601">Mozilla Bug 351601</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 351601 **/
|
||||
|
||||
var isOK = false;
|
||||
try {
|
||||
var foo = navigator.buildID;
|
||||
isOK = true;
|
||||
} catch (ex) {
|
||||
}
|
||||
ok(isOK, "navigator.buildID should never throw");
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -48,6 +48,10 @@ ifndef MOZ_PLAINTEXT_EDITOR_ONLY
|
|||
DIRS += src
|
||||
endif
|
||||
|
||||
ifdef MOZ_MOCHITEST
|
||||
DIRS += test
|
||||
endif
|
||||
|
||||
# Enable Editor API Logging!
|
||||
ENABLE_EDITOR_API_LOG=1
|
||||
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = editor/composer/test
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug348497.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=348497
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 348497</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=348497">Mozilla Bug 348497</a>
|
||||
<p id="display"></p>
|
||||
<div id="content">
|
||||
This page should not crash Mozilla<br>
|
||||
<iframe id="testIframe"></iframe>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 348497 **/
|
||||
function doe() {
|
||||
document.getElementById('testIframe').style.display = 'block';
|
||||
document.getElementById('testIframe').contentDocument.designMode = 'on';
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(doe);
|
||||
addLoadEvent(function() { ok(true, "enabling designmode on an iframe onload does not crash Mozilla")});
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -45,6 +45,8 @@ include $(DEPTH)/config/autoconf.mk
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = test_bug323656.html \
|
||||
test_bug344830.html \
|
||||
bug344830_testembed.svg \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 200 200">
|
||||
<g id="g1" transform="translate(100, 100)">
|
||||
<circle cx="0" cy="0" r="50" fill="green" />
|
||||
<text x="0" y="10" font-size="24" text-anchor="middle" fill="yellow">Kibology</text>
|
||||
</g>
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 301 B |
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=344830
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 344830</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=344830">Mozilla Bug 344830</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: block">
|
||||
<embed name="svg1"
|
||||
width="200" height="200"
|
||||
type="image/svg+xml"
|
||||
src="bug344830_testembed.svg">
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 344830 **/
|
||||
function getSVG() {
|
||||
var embed = document.embeds["svg1"];
|
||||
var svgDocument = embed.getSVGDocument();
|
||||
var element = svgDocument.getElementById("g1");
|
||||
ok(embed, "document.embeds[] works with SVG");
|
||||
ok(svgDocument, "document.embeds[] works with SVG and embed.getSVGDocument()");
|
||||
ok(element, "document.embeds[] works with SVG and svgDocument.getElementById()");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
addLoadEvent(getSVG);
|
||||
SimpleTest.waitForExplicitFinish()
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -86,6 +86,10 @@ CPPSRCS = \
|
|||
# we don't want the shared lib, but we want to force the creation of a static lib.
|
||||
FORCE_STATIC_LIB = 1
|
||||
|
||||
ifdef MOZ_MOCHITEST
|
||||
DIRS = test
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
DEFINES += -DDEBUG_TABLE_STRATEGY_off -D_IMPL_NS_LAYOUT
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
relativesrcdir = layout/tables/test
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
_TEST_FILES = \
|
||||
test_bug337124.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
|
|
@ -0,0 +1,33 @@
|
|||
<html><head>
|
||||
<title>Test for Bug 337124</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=337124">Mozilla Bug 337124</a>
|
||||
|
||||
<span style="display: table-row-group;">
|
||||
<input type="text">
|
||||
</span>
|
||||
<div style="display: table-column-group;">
|
||||
<script>document.body.offsetHeight;</script>
|
||||
</div><span style="display: table-row-group;">
|
||||
<input id="i1" type="text">
|
||||
</span><fieldset id="f1" style="display: table-column-group;">
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
var passed = false;
|
||||
if ( document.getElementById("f1").offsetTop > document.getElementById("i1").offsetTop) {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
ok(passed, "right layout order");
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -44,19 +44,6 @@ if (!params.quiet) {
|
|||
var RunSet = {}
|
||||
RunSet.runall = function() {
|
||||
TestRunner.runTests(
|
||||
'test_bug308856.html',
|
||||
'test_bug311681.html',
|
||||
'test_bug311681.xhtml',
|
||||
'test_bug311681.xml',
|
||||
'test_bug311681.xul',
|
||||
'test_bug333983.html',
|
||||
'test_bug337124.html',
|
||||
'test_bug342448.html',
|
||||
'test_bug344830.html',
|
||||
'test_bug344861.html',
|
||||
'test_bug345521.html',
|
||||
'test_bug348497.html',
|
||||
'test_bug351601.html',
|
||||
'test_bug362788.xhtml',
|
||||
'test_bug366645.xhtml'
|
||||
);
|
||||
|
|
Загрузка…
Ссылка в новой задаче