istesequi
Version:
Lightweight and intuitive javascript library
97 lines (80 loc) • 2.69 kB
JavaScript
// Testing the main file
function addTest(node, i){
return 'test' + i;
}
function addDemo(node, i){
return 'demo' + i;
}
describe(".addClass(name1, name2, ...)", function() {
beforeEach(function(){
expect(base.hasClass('bla')).to.equal(false);
expect(base.hasClass('blu')).to.equal(false);
});
afterEach(function(){
base.removeClass('bla blu');
});
it("should be defined", function() {
expect(typeof base.addClass).to.equal('function');
});
it("can be called empty", function() {
base.addClass();
base.addClass("");
base.addClass([]);
base.addClass("","");
base.addClass(" ");
});
it("adds a class", function() {
base.addClass('bla');
expect(base.hasClass('bla')).to.equal(true);
});
it("adds several classes as arguments", function() {
base.addClass('bla', 'blu');
expect(base.hasClass('bla')).to.equal(true);
expect(base.hasClass('blu')).to.equal(true);
});
it("adds several classes with an array", function() {
base.addClass(['bla', 'blu']);
expect(base.hasClass('bla')).to.equal(true);
expect(base.hasClass('blu')).to.equal(true);
});
it("adds several classes separated by space", function() {
base.addClass('bla blu');
expect(base.hasClass('bla')).to.equal(true);
expect(base.hasClass('blu')).to.equal(true);
});
it("adds several classes separated by comma", function() {
base.addClass('bla,blu');
expect(base.hasClass('bla')).to.equal(true);
expect(base.hasClass('blu')).to.equal(true);
});
it("can be concatenated", function() {
base.addClass('bla').addClass('blu');
expect(base.hasClass('bla')).to.equal(true);
expect(base.hasClass('blu')).to.equal(true);
});
it("adds several classes separated by comma", function() {
len = base.addClass('bla,blu').nodes.length;
expect(len).to.equal(1);
});
it("adds classes with callback", function(){
base.addClass(addTest);
expect(base.hasClass('test0')).to.equal(true);
// Clean up
base.removeClass('test0');
expect(base.hasClass('test0')).to.equal(false);
});
it("adds many classes with callback", function(){
base.find('li').addClass(addTest).each(function(node, i){
expect(u(node).hasClass('test' + i)).to.equal(true);
u(node).removeClass('test' + i);
});
});
it("accepts two callbacks or more", function(){
base.find('li').addClass(addTest, addDemo).each(function(node, i){
expect(u(node).hasClass('test' + i)).to.equal(true);
expect(u(node).hasClass('demo' + i)).to.equal(true);
u(node).removeClass('test' + i);
u(node).removeClass('demo' + i);
});
});
});