Skip to content

Commit bcbb1ac

Browse files
Cong Liurogerwang
authored andcommitted
[test] add 4 test cases for worker
* process.stdout error when worker is exited * require external modules failed in worker * node in sharedworker * stream events not fired in DOM when worker enabled * stream_wrap failed in worker
1 parent 64d2849 commit bcbb1ac

File tree

21 files changed

+268
-0
lines changed

21 files changed

+268
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<title>worker-process-stdout</title>
7+
</head>
8+
<body>
9+
<script>
10+
11+
function out(id, msg) {
12+
var h1 = document.createElement('h1');
13+
h1.setAttribute('id', id);
14+
h1.innerHTML = msg;
15+
document.body.appendChild(h1);
16+
}
17+
18+
function checkObjects() {
19+
// access process.stdout first in worker
20+
new Worker('worker.js');
21+
// wait for worker quit
22+
setTimeout(()=>{
23+
try{
24+
// access process.stdout again in DOM
25+
process.stdout;
26+
out('result', 'success');
27+
} catch(e) {
28+
out('result', e);
29+
}
30+
}, 100);
31+
}
32+
33+
checkObjects();
34+
35+
</script>
36+
</body>
37+
</html>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "worker-process-stdout",
3+
"main": "index.html"
4+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import time
2+
import os
3+
4+
from selenium import webdriver
5+
from selenium.webdriver.chrome.options import Options
6+
chrome_options = Options()
7+
chrome_options.add_argument("nwapp=" + os.path.dirname(os.path.abspath(__file__)))
8+
chrome_options.add_nw_argument("--enable-node-worker")
9+
10+
driver = webdriver.Chrome(executable_path=os.environ['CHROMEDRIVER'], chrome_options=chrome_options)
11+
driver.implicitly_wait(5)
12+
time.sleep(1)
13+
try:
14+
print driver.current_url
15+
result = driver.find_element_by_id('result').get_attribute('innerHTML')
16+
print result
17+
assert('success' in result)
18+
finally:
19+
driver.quit()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// access process.stdout once in worker
2+
console.log(process.stdout);
3+
close();
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<title>worker-require-module</title>
7+
</head>
8+
<body>
9+
<script>
10+
11+
function out(id, msg) {
12+
var h1 = document.createElement('h1');
13+
h1.setAttribute('id', id);
14+
h1.innerHTML = msg;
15+
document.body.appendChild(h1);
16+
}
17+
18+
function tryRequire() {
19+
new Worker('worker.js').onmessage = (e) => out('result', e.data);
20+
}
21+
22+
tryRequire();
23+
</script>
24+
</body>
25+
</html>

test/sanity/worker-require-module/node_modules/test/index.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/sanity/worker-require-module/node_modules/test/package.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "worker-require-module",
3+
"main": "index.html"
4+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import time
2+
import os
3+
4+
from selenium import webdriver
5+
from selenium.webdriver.chrome.options import Options
6+
chrome_options = Options()
7+
chrome_options.add_argument("nwapp=" + os.path.dirname(os.path.abspath(__file__)))
8+
chrome_options.add_nw_argument("--enable-node-worker")
9+
10+
driver = webdriver.Chrome(executable_path=os.environ['CHROMEDRIVER'], chrome_options=chrome_options)
11+
driver.implicitly_wait(5)
12+
time.sleep(1)
13+
try:
14+
print driver.current_url
15+
result = driver.find_element_by_id('result').get_attribute('innerHTML')
16+
print result
17+
assert('success' in result)
18+
finally:
19+
driver.quit()
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
try {
2+
postMessage(require('test'));
3+
} catch (e) {
4+
postMessage(e.message);
5+
}

0 commit comments

Comments
 (0)