var x11 = require('../lib'); var should = require('should'); var assert = require('assert'); describe('CreateWindow request', function() { // keep for a while: this snippet helps to track global leak //global.__defineSetter__('a', function(v) { // console.trace(); //}); var display; var X; beforeEach(function(done) { var client = x11.createClient(function(err, dpy) { if (!err) { display = dpy; X = display.client; } done(err); }); client.on('error', done); }); afterEach(function(done) { X.terminate(); X.on('end', done); X = null; display = null; }); it('should exist as client member', function(done) { should.exist(X.CreateWindow); assert.equal(typeof X.CreateWindow, 'function'); done(); }); it('result should present in windows tree', function(done) { var wid = X.AllocID(); X.CreateWindow(wid, display.screen[0].root, 0, 0, 1, 1); // 1x1 pixel window X.QueryTree(display.screen[0].root, function(err, list) { if (err) done(err); var pos = list.children.indexOf(wid); assert.notEqual(pos, -1, 'can\'t find created window'); done(); }); }); it('should work with any kind of attributes too', function(done) { var wid = X.AllocID(); X.CreateWindow(wid, display.screen[0].root, 0, 0, 1, 1, 0, 0, 0, 0, { overrideRedirect : true }); // 1x1 pixel window X.QueryTree(display.screen[0].root, function(err, list) { should.not.exist(err); list.children.should.containEql(wid); done(); }); }); });