mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-03 11:37:09 +00:00
test(chrome): compare the facts both hosts derive from one DOM
The existing parity harness hand-authors the facts on both sides, so it proves that given identical facts both hosts select identical candidates, and says nothing about the two code paths that derive those facts from a real page. Four divergences lived in that blind spot and it passed throughout. This drives one real page and compares clickable, enabled, editable, scrollable and positiveBounds element by element, plus the element sets themselves, which is what catches a host that omits html or includes head. Reverting any of the four fixes makes it fail naming the element and the fact. Claude-Session: https://claude.ai/code/session_01A5KmftdEJ49A9z5mF5ESrX
This commit is contained in:
1 parent
cb64f99654
commit
142ea80f60
3 files changed
+456
No files matched your search
@@ -0,0 +1,72 @@
|
||||
<!doctype html>
|
||||
<html id="page">
|
||||
<head id="page-head">
|
||||
<meta id="page-charset" charset="utf-8" />
|
||||
<title id="page-title">fact parity</title>
|
||||
<style id="page-style">
|
||||
:root {
|
||||
--frame-w: 420px;
|
||||
--frame-h: 640px;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
#scroller {
|
||||
width: 320px;
|
||||
height: 120px;
|
||||
overflow: auto;
|
||||
}
|
||||
#scroller-content {
|
||||
height: 600px;
|
||||
}
|
||||
#sideways {
|
||||
width: 320px;
|
||||
height: 40px;
|
||||
overflow: auto;
|
||||
}
|
||||
#sideways-content {
|
||||
width: 900px;
|
||||
height: 20px;
|
||||
}
|
||||
#fits {
|
||||
width: 320px;
|
||||
height: 120px;
|
||||
overflow: auto;
|
||||
}
|
||||
#fits-content {
|
||||
height: 40px;
|
||||
}
|
||||
#collapsed {
|
||||
display: none;
|
||||
}
|
||||
#filler {
|
||||
height: 900px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body id="page-body">
|
||||
<button id="save">save</button>
|
||||
<button id="cancel" disabled>cancel</button>
|
||||
<a id="link" href="#detail">detail</a>
|
||||
<select id="choice">
|
||||
<option id="choice-first">first</option>
|
||||
</select>
|
||||
<input id="amount" type="text" value="10" />
|
||||
<input id="agree" type="checkbox" />
|
||||
<textarea id="notes"></textarea>
|
||||
<div id="bio" contenteditable="true">bio</div>
|
||||
<div id="menu" role="button">menu</div>
|
||||
<div id="attribute-click" onclick="void 0">attribute click</div>
|
||||
<div id="delegating-root">delegating root</div>
|
||||
<div id="plain">plain</div>
|
||||
<div id="edit-text-field" class="EditTextField">styled</div>
|
||||
<span id="collapsed">collapsed</span>
|
||||
<div id="scroller"><div id="scroller-content"></div></div>
|
||||
<div id="sideways"><div id="sideways-content"></div></div>
|
||||
<div id="fits"><div id="fits-content"></div></div>
|
||||
<div id="filler"></div>
|
||||
<script id="page-script">
|
||||
document.getElementById("delegating-root").onclick = function () {};
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user