mirror of
https://github.com/danbulant/node-x11
synced 2026-05-19 04:18:35 +00:00
105 lines
3 KiB
JavaScript
105 lines
3 KiB
JavaScript
var x11 = require('../lib');
|
|
var should = require('should');
|
|
var assert = require('assert');
|
|
var util = require('util');
|
|
|
|
describe('DPMS extension', function() {
|
|
var display;
|
|
var X;
|
|
var dpms;
|
|
before(function(done) {
|
|
var client = x11.createClient(function(err, dpy) {
|
|
if (!err) {
|
|
display = dpy;
|
|
X = display.client;
|
|
X.require('dpms', function(ext) {
|
|
if (util.isError(ext)) {
|
|
done(ext);
|
|
} else {
|
|
dpms = ext;
|
|
done();
|
|
}
|
|
});
|
|
} else {
|
|
done(err);
|
|
}
|
|
});
|
|
|
|
client.on('error', done);
|
|
});
|
|
|
|
describe('Setting the DPMS timeouts to specific values', function() {
|
|
|
|
var prev_timeouts;
|
|
before(function(done) {
|
|
dpms.GetTimeouts(function(err, timeouts) {
|
|
prev_timeouts = timeouts;
|
|
done(err);
|
|
});
|
|
});
|
|
|
|
it('GetTimeouts should return those values', function(done) {
|
|
dpms.SetTimeouts(110, 110, 110);
|
|
dpms.GetTimeouts(function(err, timeouts) {
|
|
if (!err) timeouts.should.eql([110, 110, 110]);
|
|
done(err);
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
dpms.SetTimeouts(prev_timeouts[0], prev_timeouts[1], prev_timeouts[2]);
|
|
dpms.GetTimeouts(function(err, timeouts) {
|
|
if (!err) timeouts.should.eql(prev_timeouts);
|
|
done(err);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('Changing status and level of DPMS', function() {
|
|
var prev_status;
|
|
var prev_level;
|
|
before(function(done) {
|
|
dpms.Info(function(err, info) {
|
|
if (!err) {
|
|
prev_level = info[0];
|
|
prev_status = info[1];
|
|
}
|
|
|
|
done(err);
|
|
});
|
|
});
|
|
|
|
it('Info should return the correct values', function(done) {
|
|
if (prev_status === 0) dpms.Enable(); // for force level to work dpms must be enabled
|
|
var new_level = prev_level === 0 ? 1 : 0;
|
|
dpms.ForceLevel(new_level);
|
|
dpms.Info(function(err, info) {
|
|
if (!err) {
|
|
info[0].should.equal(new_level);
|
|
info[1].should.equal(1);
|
|
}
|
|
|
|
done(err);
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
dpms.ForceLevel(prev_level);
|
|
if (prev_status) dpms.Enable();
|
|
else dpms.Disable();
|
|
dpms.Info(function(err, info) {
|
|
if (!err) {
|
|
info[0].should.equal(prev_level);
|
|
info[1].should.equal(prev_status);
|
|
}
|
|
|
|
done(err);
|
|
});
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
X.terminate();
|
|
X.on('end', done);
|
|
});
|
|
});
|