Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions tests/app_tests/calls_across_window/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<html>
<head>
<script type="text/javascript" src="../../zepto.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("body").append('<p>Main</p>');
});
var data;
function showMess(){
$("body").append('<p>Main</p>');
}
</script>
</head>
<body>
<script>
var gui = require('nw.gui');
var program = require('../../node_modules/commander');
var net = require('net');
//command line arguments.
program
.option('--auto', 'run app automatic')
.option('-p, --port <port>', "set port used by socket")
.parse([ 'node-webkit', 'nw-test' ].concat(gui.App.argv));

var prot = 13013;
if (program.port) port = program.port;


var windows = [];
var winattr = {x: 50, y: 50, width: 300, height: 300,
frame: false, toolbar: false};

function next(win, arr) {
winattr.x += 400;
if (winattr.x > 1600) { winattr.x = 50; }
arr.push(win);
}

function newWindow(){
var win = gui.Window.open('test.html', winattr);
next(win, windows);
return win;
}

function newBrowserWindow() {
var win = window.open('test.html', null, 'screenX='+winattr.x+
',screenY='+winattr.y+',width=400,height=300');
win = gui.Window.get(win);
next(win, windows);
return win;
}

function fourTimes(f){
for (var i = 0; i < 4; i++) f();
}

function testWindows(){
for (var i = 0; i < windows.length; i++){
if (windows[i].test) windows[i].test();
}
}


gui.Window.get().on('close', function() {
for (var i = 0; i < windows.length; i++) windows[i].close(true);
this.close(true);
});


if (program.auto){
var client = net.connect({port: port});
client.setEncoding('utf8');

client.on('data', function(data) {
if (data == 'newWindow') {
var win = newWindow();

win.on('loaded', function() {
if (win.test) {
win.test();

if (win.isTestSuccess()) {
client.write('ok');
} else {
client.write('call does not success');
}

} else {
client.write('call does not exist');
}// if (win.test)
win.close();
});

}//if (data == 'newWindow')

if (data == 'newBrowserWindow') {
var win;
try {
win = newBrowserWindow();
}
catch (e){
client.write('there is error in creating window');
return;
}
win.on('loaded', function(){
if (win.test) {
win.test();

if (win.isTestSuccess()) {
client.write('ok');
} else {
client.write('call does not success');
}

} else {
client.write('call does not exist');
}// if (win.test)
win.close();
});


}//if (data == 'newBrowserWindow')

});
}


</script>
<button onclick="fourTimes(newWindow)">New gui windows</button>
<button onclick="fourTimes(newBrowserWindow)">New browser windows</button><br>
<button onclick="testWindows()">Test windows</button>
<button onclick="gui.App.quit()">quit</button>
</body>
</html>
77 changes: 77 additions & 0 deletions tests/app_tests/calls_across_window/mocha_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
var assert = require('assert');
var spawn = require('child_process').spawn;
var path = require('path');
var net = require('net');
var server = global.server

describe('AppTest', function(){
describe('call across window', function(){

var app;
var exec_argv;
var socket;
before(function(done){
//this.timeout(0);
exec_argv = [path.join('app_tests', 'calls_across_window'),
'--port',
global.port];

if (global.auto) exec_argv.push('--auto');

server.on('connection', function(s){
socket = s;
s.setEncoding('utf8');
s.on('end', function(){
console.log('client dissconnect');
});
done();
});
app = spawn(process.execPath, exec_argv);

})

after(function(done){
this.timeout(0);
/*
server.removeAllListeners('connection');
app.on('exit', function(c){
done();
});
*/
app.kill();
done();
})

afterEach(function(){
//console.log('before Each');
socket.removeAllListeners('data');
})

it ('nw window function call', function(done) {

socket.on('data', function(data) {
if (data == 'ok') {
done();
} else {
done(data);
}
});
socket.write('newWindow');

})

it ('brower window function call', function(done) {
//this.timeout(0);
socket.on('data', function(data) {
if (data == 'ok') {
done();
} else {
done(data);
}
});
socket.write('newBrowserWindow');

})

})
})
4 changes: 4 additions & 0 deletions tests/app_tests/calls_across_window/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "nw-test",
"main": "index.html"
}
32 changes: 32 additions & 0 deletions tests/app_tests/calls_across_window/test.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<html>
<head>
<script type="text/javascript" src="../../zepto.min.js"></script>
<script type="text/javascript">
var gui = require('nw.gui');
var win = gui.Window.get();

function test2(){
}

gui.Window.get().test = function(){
document.getElementById('msg').innerHTML = 'Test called';
}

gui.Window.get().isTestSuccess = function(){
if (document.getElementById('msg').innerHTML == 'Test called') {
return true;
} else {
return false;
}
}

</script>
</head>
<body>
<button onclick="win.test()"> click</button> <br>
<script type="text/javascript">
document.write('Window id='+win.id+' routing_id='+win.routing_id);
</script>
<p id="msg" style='color: blue'></p>
</body>
</html>
4 changes: 4 additions & 0 deletions tests/app_tests/htmltest_should_score_452/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "nw-test",
"main": "http://html5test.com"
}
106 changes: 106 additions & 0 deletions tests/app_tests/reload_application/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<html>
<head>
<script>
var gui = require('nw.gui');
function quit(){
gui.App.quit();
}
function closeWindow(){
gui.Window.get().close();
}
</script>
</head>

<body>

<script>

if (global.mydata == undefined){
global.mydata = 0;
}else{
global.mydata = global.mydata + 1;
}


var program = require('../../node_modules/commander');
var net = require('net');
//command line arguments.
program
.option('--auto', 'run app automatic')
.option('-p, --port <port>', "set port used by socket")
.option('-t, --type <n>', "type")
.parse([ 'node-webkit', 'nw-test' ].concat(gui.App.argv));

/*
0: close window after reload.
1: quit after reload.
2: close window after reloadDev.
3: quit window after reloadDev.
*/
var type = -1;
var prot = 13013;
if (program.type && program.type >= 0 && program.type < 4) type = program.type;
if (program.auto) console.log('auto');
if (program.port) port = program.port;

setTimeout(function(){
gui.Window.get().show();
document.body.insertAdjacentHTML('beforeEnd',
'<p>' + global.mydata + 'times. window will hide in 2s.</p>');
}, 1000);

setTimeout(function(){
gui.Window.get().hide();
}, 2000);

setTimeout(function(){
document.body.insertAdjacentHTML('beforeEnd',
'<p> show after reload app' +
', window can be closed and should not crash. </p>');
gui.Window.get().show();

if (program.auto){
if (type == 0 || type == 1 && global.mydata == 0){
location.reload();
}

if (type == 0 && global.mydata > 0){
gui.Window.get().close();
}

if (type == 1 && global.mydata > 0){
gui.App.quit();
}

if (type == 3 || type == 2){
var client = net.connect({port: port});
client.setEncoding('utf8');
client.write('open');
client.on('data', function(data){
if (data == 'quit'){
if (type == 3) gui.App.quit();
if (type == 2) gui.Window.get().close();
}
if (data == 'reload'){
gui.Window.get().reload(3);
}
});

}

}


}, 3000);

</script>
<button onclick="quit()">quit</button>
<br>
<button onclick="closeWindow()">close window</button>
<br>
<button onclick="location.reload()">reload</button>
<br>
<button onclick="gui.Window.get().reload(3)">reloadDev</button>

</body>
</html>
Loading