The library for web and native user interfaces.
Run each test in an <iframe>.
Ben Newman committed
May 28, 2013 at 17:15 UTC
6cfa71a3c2b431fd2dfbb78379c795b8aeb2ee53
3 files changed
+72
-6
test/frame.html
new
+18
@@ -0,0 +1,18 @@
1
+<!DOCTYPE html>
2
+<html>
3
+ <head>
4
+ <script>
5
+ jasmine = parent.jasmine;
6
+ jasmine.exposeFrom(window);
7
+
8
+ console = parent.console;
9
+ callPhantom = parent.callPhantom;
10
+ </script>
11
+ <script src="react-test.js"></script>
12
+ </head>
13
+ <body>
14
+ <script>
15
+ require(window.frameElement.getAttribute("test"));
16
+ </script>
17
+ </body>
18
+</html>
test/index.html
+46
-1
@@ -2,8 +2,15 @@
2
<html>
3
<head>
4
<link rel="stylesheet" type="text/css" href="jasmine.css" />
5
+ <style type="text/css">
6
+ iframe {
7
+ visibility: hidden;
8
+ position: absolute;
9
+ left: -1000px;
10
+ top: -1000px;
11
+ }
12
+ </style>
13
<script src="jasmine.js"></script>
6
- <script src="react-test.js"></script>
14
<script>
15
window.onload = function() {
16
require("jasmine").getEnv().execute();
@@ -11,5 +18,43 @@
18
</script>
19
</head>
20
<body>
21
+ <iframe src="frame.html" test="core/__tests__/ReactBind-test"></iframe>
22
+ <iframe src="frame.html" test="core/__tests__/ReactComponent-test"></iframe>
23
+ <iframe src="frame.html" test="core/__tests__/ReactComponentLifeCycle-test"></iframe>
24
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponent-test"></iframe>
25
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponentDOMMinimalism-test"></iframe>
26
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponentMixin-test"></iframe>
27
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponentSpec-test"></iframe>
28
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponentState-test"></iframe>
29
+ <iframe src="frame.html" test="core/__tests__/ReactCompositeComponentTransferProps-test"></iframe>
30
+ <iframe src="frame.html" test="core/__tests__/ReactDOM-test"></iframe>
31
+ <iframe src="frame.html" test="core/__tests__/ReactDOMIDOperations-test"></iframe>
32
+ <iframe src="frame.html" test="core/__tests__/ReactEvent-test"></iframe>
33
+ <iframe src="frame.html" test="core/__tests__/ReactIdentity-test"></iframe>
34
+ <iframe src="frame.html" test="core/__tests__/ReactInstanceHandles-test"></iframe>
35
+ <iframe src="frame.html" test="core/__tests__/ReactMountDestruction-test"></iframe>
36
+ <iframe src="frame.html" test="core/__tests__/ReactMultiChildReconcile-test"></iframe>
37
+ <iframe src="frame.html" test="core/__tests__/ReactMultiChildText-test"></iframe>
38
+ <iframe src="frame.html" test="core/__tests__/ReactNativeComponent-test"></iframe>
39
+ <iframe src="frame.html" test="core/__tests__/ReactProps-test"></iframe>
40
+ <iframe src="frame.html" test="core/__tests__/ReactStateSetters-test"></iframe>
41
+ <iframe src="frame.html" test="core/__tests__/refs-destruction-test"></iframe>
42
+ <iframe src="frame.html" test="core/__tests__/refs-test"></iframe>
43
+ <iframe src="frame.html" test="domUtils/__tests__/CSSPropertyOperations-test"></iframe>
44
+ <iframe src="frame.html" test="domUtils/__tests__/DOMPropertyOperations-test"></iframe>
45
+ <iframe src="frame.html" test="eventPlugins/__tests__/AnalyticsEventPlugin-test"></iframe>
46
+ <iframe src="frame.html" test="eventPlugins/__tests__/ResponderEventPlugin-test"></iframe>
47
+ <iframe src="frame.html" test="utils/__tests__/ImmutableObject-test"></iframe>
48
+ <iframe src="frame.html" test="utils/__tests__/OrderedMap-test"></iframe>
49
+ <iframe src="frame.html" test="utils/__tests__/Transaction-test"></iframe>
50
+ <iframe src="frame.html" test="utils/__tests__/joinClasses-test"></iframe>
51
+ <iframe src="frame.html" test="utils/__tests__/keyMirror-test"></iframe>
52
+ <iframe src="frame.html" test="utils/__tests__/mapChildren-test"></iframe>
53
+ <iframe src="frame.html" test="utils/__tests__/memoizeStringOnly-test"></iframe>
54
+ <iframe src="frame.html" test="utils/__tests__/mergeFuncs-test"></iframe>
55
+ <iframe src="frame.html" test="utils/__tests__/objFilter-test"></iframe>
56
+ <iframe src="frame.html" test="utils/__tests__/objMap-test"></iframe>
57
+ <iframe src="frame.html" test="vendor/error/__tests__/erx-test"></iframe>
58
+ <iframe src="frame.html" test="vendor/error/__tests__/ex-test"></iframe>
59
</body>
60
</html>
test/phantom-harness.js
+8
-5
@@ -35,11 +35,6 @@ server.listen(port, function(req, res) {
35
var file = req.url.replace(/^\/+/, "");
36
37
switch (file) {
38
- case "":
39
- default:
40
- file = "index.html";
41
- break;
42
-
38
case "react-test.js":
39
file = "../build/" + file;
40
break;
@@ -51,6 +46,14 @@ server.listen(port, function(req, res) {
46
case "jasmine.js":
47
file = "../build/" + file;
48
break;
49
+
50
+ case "frame.html":
51
+ break;
52
+
53
+ case "":
54
+ default:
55
+ file = "index.html";
56
+ break;
57
}
58
59
if (/\.css$/i.test(file)) {