Files
palemoon27/dom/html/test/forms/test_output_element.html
T
roytam1 ab81798c2c import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1157400 - Port Chromium WinXP wifi scanner to gecko. r=mcmanus (9b635017e1)
- Bug 1244586 part 1 - Add KeyframeEffect constructor in dom/webidl/KeyframeEffect.webidl. r=smaug,birtles (1290148ebd)
- Bug 1226047 - Add AnimationEffectTiming interface in dom/webidl/AnimationEffectTiming.webidl. r=smaug,birtles (ba10fa4231)
- Bug 1244586 part 2 - Remove entry in testing/web-platform/meta/web-animations/animatable/animate.html.ini. r=birtles (fc517234a3)
- Bug 1244586 part 3 - Remove unnecessary spaces in dom/base/Element.cpp. r=smaug (206e3e39e9)
- Bug 1244328 - Merge the functionality of DOMSettableTokenList into DOMTokenList and make everything that used to refer to DOMSettableTokenList refer to DOMTokenList instead. r=bzbarsky (d9da9d650b)
- Bug 1249278 - Expose KeyframeEffect interface only if nsDocument::IsWebAnimationsEnabled is true. r=smaug (f2ebb43d75)
- Bug 1245075 patch 1 - Remove assertion, since it can fire during frame destruction. r=dholbert (cb2821f507)
- Bug 1237467 part 1 - No longer mark element as needing an animation restyle if we go to restyle it and it no longer has an effect set; r=heycam (dd0de52287)
- Bug 1237467 part 2 - Clear mProgressOnLastCompose when the effect is no longer relevant; r=heycam (d4249517e6)
- Bug 1237467 part 3 - Add debug methods to determine if an EffectSet is currently being enumerated; r=heycam (41b68593c0)
- Bug 1237467 part 4 - Delete the EffectSet when it becomes empty; r=heycam (8db9a40774)
- Bug 1226091 - Use MayHaveAnimations flag for animations on pseudo elements too; r=smaug (b60bbdd9d4)
- Bug 1245075 patch 2 - Fix EffectSet::GetEffectSet(nsIFrame*) and EffectCompositor::GetAnimationElementAndPseudoForFrame to only return effects when the frame is the style frame for its content. r=birtles (82fd23f632)
- Bug 1235112 - Move animation style rule processors to EffectCompositor; r=heycam (3b88ffab44)
- Bug 1247865 - Fix assertion to handle restyling of a table::after. r=birtles (62d4c12d58)
- Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron (b2232f2c37)
- Bug 1240479 - pass values for mReversePortion and mStartForReversingTestin through constructor. r=heycam (2b914ea48f)
- Bug 1244049 - Part 2: Replace nsCSSPseudoElements::Type with CSSPseudoElementType. r=dbaron (a7c2d48b62)
- Bug 1244250 - r=mats (c7b5cde4ba)
- Bug 1234095 - Rework sorting to handle to script-generated animations; r=heycam (44e9463b5a)
- Bug 888190. Implement case-insensitive attribute value selectors from Selectors 4. r=dbaron (43ede42ade)
- Bug 1240956 part 1 - [css-grid] Swap the order of column/row values for 'grid', 'grid-template' and 'grid-gap' properties. Block axis values now always comes first; inline axis values second. r=dholbert (73a78b5ee0)
- Bug 1240956 part 3 - [css-grid] Add a ParseGridTrackList convenience method. r=dholbert (8b62273ccc)
- Bug 1234409: Give percentage positions to the dummy transparent color-stops that we use to pad CSS -webkit-gradient() expressions. r=heycam (f9da14276b)
- Bug 1231485 part 1 - Fix text-emphasis shorthand with style part unspecified being computed incorrectly. r=dbaron (3a9ea936fa)
- Bug 1231485 part 2 - Add NeutralChange hint to nsStyleText::MaxDifference(). r=dbaron (db3adc0250)
- Bug 1231485 part 3 - Fix style tests for text-emphasis properties. r=dbaron (d17ec991fd)
- Bug 1231485 part 4 - Enable layout.css.text-emphasis.enabled pref. r=dbaron (9362cd4ef8)
- Bug 1157400 - Part1: port chromium XP wifi scanning code. r=mcmanus (bfe8b3f758)
- Bug 1240646 - Do not unthrottle animations if RestyleType::Throttled is specified. r=bbirtles (664255ff76)
- Bug 1240228 - Don't update an effect's timing when tweaking its animation's hold time; r=heycam (e1cb11e54c)
- Bug 1246046 part 1 - Get the animation rule in nsStyleSet::GetContext even if there are no CSS animations; r=heycam (4032b461cf)
- Bug 1246046 part 2 - Add reftest for style updating for script-generated animations; r=heycam (a134bc98b0)
- Bug 1241378 - Stop uselessly getting the style set from nsStyleSet::ResolveAnonymousBoxStyle. r=dholbert (4ad16c9a17)
- Bug 1230639 - Propagate the namespace ID to AttributeRuleProcessorData on attribute changes. r=dbaron (77a383158b)
2023-11-17 13:51:57 +08:00

183 lines
5.1 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=346485
-->
<head>
<title>Test for Bug 346485</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="../reflect.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
frameLoaded = function() {
is(frames['submit_frame'].location.href, "about:blank",
"Blank frame loaded");
}
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=346485">Mozilla Bug 346485</a>
<p id="display"></p>
<iframe name="submit_frame" onload="frameLoaded()" style="visibility: hidden;"></iframe>
<div id="content" style="display: none">
<form id='f' method='get' target='submit_frame' action='foo'>
<input name='a' id='a'>
<input name='b' id='b'>
<output id='o' for='a b' name='output-name'>tulip</output>
</form>
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 346485 **/
function checkNameAttribute(element)
{
is(element.name, "output-name", "Output name IDL attribute is not correct");
is(element.getAttribute('name'), "output-name",
"Output name content attribute is not correct");
}
function checkValueAndDefaultValueIDLAttribute(element)
{
is(element.value, element.textContent,
"The value IDL attribute should act like the textContent IDL attribute");
element.value = "foo";
is(element.value, "foo", "Value should be 'foo'");
is(element.defaultValue, "", "Default defaultValue is ''");
element.defaultValue = "bar";
is(element.defaultValue, "bar", "defaultValue should be 'bar'");
// More complex situation.
element.textContent = 'foo';
var b = document.createElement('b');
b.textContent = 'bar'
element.appendChild(b);
is(element.value, element.textContent,
"The value IDL attribute should act like the textContent IDL attribute");
}
function checkValueModeFlag(element)
{
/**
* The value mode flag is the flag used to know if value should represent the
* textContent or the default value.
*/
// value mode flag should be 'value'
isnot(element.defaultValue, element.value,
"When value is set, defaultValue keeps its value");
var f = document.getElementById('f');
f.reset();
// value mode flag should be 'default'
is(element.defaultValue, element.value, "When reset, defaultValue=value");
is(element.textContent, element.defaultValue,
"textContent should contain the defaultValue");
}
function checkDescendantChanged(element)
{
/**
* Whenever a descendant is changed if the value mode flag is value,
* the default value should be the textContent value.
*/
element.defaultValue = 'tulip';
element.value = 'foo';
// set value mode flag to 'default'
var f = document.getElementById('f');
f.reset();
is(element.textContent, element.defaultValue,
"textContent should contain the defaultValue");
element.textContent = "bar";
is(element.textContent, element.defaultValue,
"textContent should contain the defaultValue");
}
function checkFormIDLAttribute(element)
{
is(element.form, document.getElementById('f'),
"form IDL attribute is invalid");
}
function checkHtmlForIDLAttribute(element)
{
is(String(element.htmlFor), 'a b',
"htmlFor IDL attribute should reflect the for content attribute");
// DOMTokenList is tested in another bug so we just test assignation
element.htmlFor.value = 'a b c';
is(String(element.htmlFor), 'a b c', "htmlFor should have changed");
}
function submitForm()
{
// Setting the values for the submit.
document.getElementById('o').value = 'foo';
document.getElementById('a').value = 'afield';
document.getElementById('b').value = 'bfield';
frameLoaded = checkFormSubmission;
// This will call checkFormSubmission() which is going to call ST.finish().
document.getElementById('f').submit();
}
function checkFormSubmission()
{
/**
* All elements values have been set just before the submission.
* The input elements values should be in the submit url but the ouput
* element value should not appear.
*/
is(frames['submit_frame'].location.href,
'http://mochi.test:8888/tests/dom/html/test/forms/foo?a=afield&b=bfield',
"The output element value should not be submitted");
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
reflectString({
element: document.createElement("output"),
attribute: "name",
});
var o = document.getElementsByTagName('output');
is(o.length, 1, "There should be one output element");
o = o[0];
ok(o instanceof HTMLOutputElement,
"The output should be instance of HTMLOutputElement");
o = document.getElementById('o');
ok(o instanceof HTMLOutputElement,
"The output should be instance of HTMLOutputElement");
is(o.type, "output", "Output type IDL attribute should be 'output'");
checkNameAttribute(o);
checkValueAndDefaultValueIDLAttribute(o);
checkValueModeFlag(o);
checkDescendantChanged(o);
checkFormIDLAttribute(o);
checkHtmlForIDLAttribute(o);
submitForm();
});
</script>
</pre>
</body>
</html>