Skip to content

Commit 4c16dca

Browse files
committed
[test] add case for nwjs#6061: nwjc bin crash
1 parent 79322a9 commit 4c16dca

File tree

4 files changed

+75
-0
lines changed

4 files changed

+75
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script>
9+
nw.Window.get().evalNWBin(null, 'index.bin');
10+
nw.Window.get().showDevTools();
11+
//chrome.developerPrivate.openDevTools({renderViewId: -1, renderProcessId: -1, extensionId: chrome.runtime.id})
12+
</script>
13+
<div id='result'>6061 bincrash test</div>
14+
</body>
15+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class DevClass {
2+
constructor() {
3+
console.log("DevClass constructor")
4+
}
5+
}
6+
7+
var devItem = new DevClass()
8+
9+
console.log(devItem)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "nw-demo",
3+
"main": "index.html"
4+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import time
2+
import os
3+
import shutil
4+
import subprocess
5+
import platform
6+
import sys
7+
from subprocess import Popen, PIPE
8+
from selenium.webdriver.common.by import By
9+
10+
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
11+
from nw_util import *
12+
13+
from selenium import webdriver
14+
from selenium.webdriver.chrome.options import Options
15+
chrome_options = Options()
16+
testdir = os.path.dirname(os.path.abspath(__file__))
17+
chrome_options.add_argument("nwapp=" + testdir)
18+
binfile = os.path.join(testdir, "index.bin")
19+
nwjc = os.path.join(os.path.dirname(os.environ['CHROMEDRIVER']), "nwjc.exe" if os.name == "nt" else "nwjc")
20+
os.chdir(testdir)
21+
try:
22+
os.remove(binfile)
23+
except:
24+
pass
25+
assert(False == os.path.isfile(binfile))
26+
subprocess.call([nwjc, "index.js", "index.bin"])
27+
assert(os.path.isfile(binfile))
28+
29+
driver = webdriver.Chrome(executable_path=os.environ['CHROMEDRIVER'], chrome_options=chrome_options)
30+
driver.implicitly_wait(2)
31+
time.sleep(1)
32+
try:
33+
switch_to_app(driver)
34+
print driver.current_url
35+
print 'wait for devtools open'
36+
wait_window_handles(driver, 2)
37+
print driver.window_handles
38+
print 'switch to devtools'
39+
switch_to_devtools(driver)
40+
print 'click Console panel'
41+
devtools_click_tab(driver, 'console')
42+
driver.find_element_by_class_name('console-message-text').click()
43+
driver.find_element_by_class_name('console-view-object-properties-section').click()
44+
outer = driver.execute_script('return document.querySelector(".console-view-object-properties-section").shadowRoot')
45+
outer.find_element_by_class_name("object-properties-section-dimmed").click()
46+
finally:
47+
driver.quit()

0 commit comments

Comments
 (0)