Index of /tests/evil/acid/004

      Name                    Last modified      Size  Description
Parent Directory -
Acid4 will be primarily a visual test, not especially scripted. Focus
will probably be on SVG, CSS, and mixing namespaces, probably with the
main document being an XML file with an SVG root element.

Work on Acid4 will begin when three of the four top rendering engines
have builds that pass the test, and will be finished and announced
after four of the top four rendering engines have announced that they
have fixed all the bugs found by Acid3 (though of course that may
happen long before all those rendering engines have been shipped in a
browser somewhere).


LESSONS FROM ACID3
========================================================================
- don't include minor bugs
- don't ask for specific tests, write the tests yourself
- request feedback from early on (t=0) in the cycle, both publically
  and directly to specific people
- ask for feedback about what things to test
- don't actually show the test early in the cycle, to prevent people
  from targetting it while people are discussing what to test
- no performance stuff as part of the test (though as a separate
  competition is ok if you get everyone to sign off on the test being
  fair)
- make it have a pretty picture
========================================================================


ROUGH NOTES
========================================================================

Contact:
  shaver - http://shaver.off.net/diary/2008/03/27/the-missed-opportunity-of-acid-3/#comment-135276
  cwilso to determine what he thinks should be tested
  wide circulation mailing lists
  Devon Young http://devonyoung.com/contact -- wants to suggest basic bugs that he runs into
  contact dbaron very early on


ABSOLUTELY MUST have test of fractional pixel values, e.g. margin-left
of one inline-block + margin-right of another inline-block being
0.24px + 0.76px, also em values of fractional font sizes, etc.


http://simon.html5.org/test/opera/

Link: HTTP header

<!DOCTYPE html>
<style>
div { display: table-cell; border: 1px solid blue; }
</style>
<p>These columns are in the markup:
<div>column1</div>
<div>column2</div>
<div>column3</div>
<p>These columns are created by a script:
<script>
var div;
for (var i = 1; i <= 3; i++) {
  div = document.createElement("div");
  div.innerHTML = "column " + i;
  document.body.appendChild(div);
}
</script>

\n instead of \r for newlines in IE

http://annevankesteren.nl/2007/02/ie7-css-hacks

URI canonicalisation (case of scheme/host is irrelevant):
> Basically, I think you would create an iframe to someresource that
> succeeds, wait for it to load, then get the full URL from that frame,
> and change the case of the protocol or hostname. You would make an
> anchor tag with this new URL, and check if it gets the :visited
> pseudo-style. Am I missing something?


Opera 9 has bugs in how it handles right-to-left sections (used for
Arabic, Hebrew, etc.). In particular it reverses right and left
padding on boxes, which is wrong. It would be a very valuable addition
to Acid3 to put either <tag dir=rtl> or .class {direction: rtl} on the
page to verify that table and box rendering is correct in that mode.
- David Weitzman


# The entity &8203; -- zero-width space -- works properly in Mozilla,
Safari, and Opera. But it leaves a block glyph in IE everywhere used,
not just at taken breaks.
 -- http://gojomo.blogspot.com/2005/03/cross-browser-invisible-word-break-in.html



========= Test implicit calls of function overrides =======

var org = String.prototype.toString; // backup original function
String.prototype.toString = function() { return "xyz"; }
var idx = "abc".indexOf("y");
String.prototype.toString = org;     // avoid side effects
if (idx != 1)
   throw "toString() override not in effect";
return 5;

============================================================
Reasoning based on the ECMAScript Edition 3 spec: the lookup of the
"indexOf" property will be done after the primitive string value is
promoted with ToObject() (11.21.1 Property Accessors). This will
result in a String object. The String.prototype.indexOf() function
found by the "indexOf" lookup is defined to call ToString on the
"this" value (15.5.4.7). Section 9.8 says that ToString will first
call ToPrimitive() and then ToString() on the result. ToPrimitive()
will call the internal [[DefaultValue]] function (9.1). Section
8.6.2.6 defines [[DefaultValue]] to execute a toString() function
should it exist. And that's the point where a custom function set by
the JS programmer should be respected.
- Harri Porten, but see next quote:

On Sat, 23 Feb 2008, Garrett Smith wrote:
>  
> Test implicit calls of function overrides:
> 
> That's a test of [[PutValue]] combined with a test for [[Get]] on a
> Built in (String).
> 
> The note by Harri Porten is wrong.
> 
> The first thing that happens is "." creates an object; ToObject()
> which results in a String object being created. The String object.
> Then call Get("indexOf") on that object. It is not found on the   
> object, so it looks in the prototype chain. "indexOf" is found on 
> String.prototype. next, the call operator () invokes call() on    
> indexOf, passing the string as the thisArg.
> 
> In indexOf, the value is obtained by calling ToObject(this), which
> calls ToPrimitive passing the String object, which results in a string
> value.

From: Garrett Smith <dhtmlkitchen@gmail.com>
> Other bugs:
>  Webkit doesn't return computed clip values =>
> http://bugs.webkit.org/show_bug.cgi?id=17433  
>  Mozilla: computed shorthand values return "" =>
> https://bugzilla.mozilla.org/show_bug.cgi?id=58638

IE6 renders the inlines badly in this:
   <!DOCTYPE html>
   <style>span { border: solid }</style>
   aa<span>aa<p>aa</span>aa</p>aa</span>aa

default <option> when first disabled http://simon.html5.org/test/ie7b2-bugs/049.html
empty inlines with borders should render (http://simon.html5.org/test/ie7b2-bugs/043.html)
borders on inlines should paint http://simon.html5.org/test/ie7b2-bugs/042.html
unknown colours should drop the declaration http://simon.html5.org/test/ie7b2-bugs/038.html
!important followed by non-!importatnt should let the !important one win


list from dbaron:
https://bugzilla.mozilla.org/buglist.cgi?bug_id=4522,25888,87277,118501,148810,258377
check the test cases in webkit, opera, IE as well as gecko

Look for bugs with status whiteboard [Hixie-P...]

========================================================================


glazou wants :target tested