Run each test in an <iframe>.

This commit is contained in:
Ben Newman 2013-05-28 17:15:27 -04:00
parent 42f8d155f8
commit 6cfa71a3c2
3 changed files with 72 additions and 6 deletions

18
test/frame.html Normal file
View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<script>
jasmine = parent.jasmine;
jasmine.exposeFrom(window);
console = parent.console;
callPhantom = parent.callPhantom;
</script>
<script src="react-test.js"></script>
</head>
<body>
<script>
require(window.frameElement.getAttribute("test"));
</script>
</body>
</html>

View File

@ -2,8 +2,15 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="jasmine.css" />
<style type="text/css">
iframe {
visibility: hidden;
position: absolute;
left: -1000px;
top: -1000px;
}
</style>
<script src="jasmine.js"></script>
<script src="react-test.js"></script>
<script>
window.onload = function() {
require("jasmine").getEnv().execute();
@ -11,5 +18,43 @@
</script>
</head>
<body>
<iframe src="frame.html" test="core/__tests__/ReactBind-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactComponent-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactComponentLifeCycle-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponent-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponentDOMMinimalism-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponentMixin-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponentSpec-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponentState-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactCompositeComponentTransferProps-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactDOM-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactDOMIDOperations-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactEvent-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactIdentity-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactInstanceHandles-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactMountDestruction-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactMultiChildReconcile-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactMultiChildText-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactNativeComponent-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactProps-test"></iframe>
<iframe src="frame.html" test="core/__tests__/ReactStateSetters-test"></iframe>
<iframe src="frame.html" test="core/__tests__/refs-destruction-test"></iframe>
<iframe src="frame.html" test="core/__tests__/refs-test"></iframe>
<iframe src="frame.html" test="domUtils/__tests__/CSSPropertyOperations-test"></iframe>
<iframe src="frame.html" test="domUtils/__tests__/DOMPropertyOperations-test"></iframe>
<iframe src="frame.html" test="eventPlugins/__tests__/AnalyticsEventPlugin-test"></iframe>
<iframe src="frame.html" test="eventPlugins/__tests__/ResponderEventPlugin-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/ImmutableObject-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/OrderedMap-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/Transaction-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/joinClasses-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/keyMirror-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/mapChildren-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/memoizeStringOnly-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/mergeFuncs-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/objFilter-test"></iframe>
<iframe src="frame.html" test="utils/__tests__/objMap-test"></iframe>
<iframe src="frame.html" test="vendor/error/__tests__/erx-test"></iframe>
<iframe src="frame.html" test="vendor/error/__tests__/ex-test"></iframe>
</body>
</html>

View File

@ -35,11 +35,6 @@ server.listen(port, function(req, res) {
var file = req.url.replace(/^\/+/, "");
switch (file) {
case "":
default:
file = "index.html";
break;
case "react-test.js":
file = "../build/" + file;
break;
@ -51,6 +46,14 @@ server.listen(port, function(req, res) {
case "jasmine.js":
file = "../build/" + file;
break;
case "frame.html":
break;
case "":
default:
file = "index.html";
break;
}
if (/\.css$/i.test(file)) {