blob: 86af8d048569d16d96e58e7ec7ff2377b1899b80 [file] [log] [blame]
var assert = require("assert"),
path = require("path"),
utils = require("./utils");
var StyleSheets;
var styleSheet;
var SS_TEXT = [
"main {",
" font-family: Georgia, sans-serif;",
" color: black;",
"}",
"",
"* {",
" padding: 0;",
" margin: 0;",
"}"
].join("\n");
before(function(done) {
utils.loadTab('stylesheets.html', function(aTab) {
StyleSheets = aTab.StyleSheets;
StyleSheets.getStyleSheets(function(err, sheets) {
assert.strictEqual(err, null);
styleSheet = sheets[1];
done();
})
});
});
// Stylesheets - getStyleSheets(), addStyleSheet()
describe('getStyleSheets()', function() {
it('should list all the stylesheets', function(done) {
StyleSheets.getStyleSheets(function(err, sheets) {
assert.strictEqual(err, null);
var hrefs = sheets.map(function(sheet) {
assert.ok(sheet.update, "sheet has Stylesheet methods");
return path.basename(sheet.href);
});
assert.deepEqual(hrefs, ["null", "stylesheet1.css"]);
done();
})
})
})
describe('addStyleSheet()', function() {
it('should add a new stylesheet', function(done) {
var text = "div { font-weight: bold; }";
StyleSheets.addStyleSheet(text, function(err, sheet) {
assert.strictEqual(err, null);
assert.ok(sheet.update, "sheet has Stylesheet methods");
assert.equal(sheet.ruleCount, 1);
done();
})
})
})
// StyleSheet - update(), toggleDisabled()
describe('StyleSheet', function() {
it('should have the correct properties', function() {
assert.equal(path.basename(styleSheet.href), "stylesheet1.css");
assert.strictEqual(styleSheet.disabled, false);
assert.equal(styleSheet.ruleCount, 2);
})
})
describe('StyleSheet.getText()', function() {
it('should get the text of the style sheet', function(done) {
styleSheet.getText(function(err, resp) {
assert.strictEqual(err, null);
assert.equal(resp, SS_TEXT);
done();
})
})
});
describe('StyleSheet.update()', function() {
it('should update stylesheet', function(done) {
var text = "main { color: red; }";
styleSheet.update(text, function(err, resp) {
assert.strictEqual(err, null);
// TODO: assert.equal(styleSheet.ruleCount, 1);
done();
})
})
})
describe('StyleSheet.toggleDisabled()', function() {
it('should toggle disabled attribute', function(done) {
assert.deepEqual(styleSheet.disabled, false);
styleSheet.toggleDisabled(function(err, resp) {
assert.strictEqual(err, null);
assert.deepEqual(styleSheet.disabled, true);
done();
})
})
it('should fire disabled-changed event', function(done) {
styleSheet.toggleDisabled(function(err, resp) {
assert.strictEqual(err, null);
assert.deepEqual(styleSheet.disabled, false);
})
styleSheet.on("disabled-changed", function(disabled) {
assert.strictEqual(disabled, false);
done();
})
})
})
describe('StyleSheet.getOriginalSources()', function() {
it('should get no original sources', function(done) {
styleSheet.getOriginalSources(function(err, resp) {
assert.strictEqual(err, null);
assert.deepEqual(resp, []);
done();
})
})
})