UNPKG

sliderjs

Version:

lightweight slideshow engine using CSS, Canvas and WebGL Transitions

140 lines (121 loc) 4.26 kB
module("SliderJS Core"); test("instanciation works", function () { var slider = newSlider(); ok(slider instanceof sliderjs.Slider, "first instanciation"); slider = newSlider(); ok(slider instanceof sliderjs.Slider, "second instanciation"); }) test("modules are loosely coupled", function () { var slider = newSlider({ modules: ["template", "height"] }); ok(!slider.width, "width is not loaded if not mentionned in modules."); var slider = newSlider({ modules: "template, height" }); ok(!slider.width, "width is not loaded if not mentionned in modules."); slider = newSlider({ exceptModules: "width" }); ok(!slider.width, "width is not loaded with exceptModules."); $.each(sliderjs.modules(), function (i, module) { var slider = newSlider({ modules: module }); ok(slider instanceof sliderjs.Slider, "Slider works with only "+module); }); $.each(sliderjs.modules(), function (i, module) { var slider = newSlider({ exceptModules: module }); ok(slider instanceof sliderjs.Slider, "Slider works without "+module); }); }) test("modules start / stop", function () { var slider = newSlider({ modules: [] }); $.each(sliderjs.modules(), function (i, module) { slider.modules.start(module); }); ok(slider.modules().length > 0, "more than 0 modules are loaded"); $.each(sliderjs.modules(), function (i, module) { slider.modules.stop(module); }); ok(slider.modules().length == 0, "0 modules are loaded"); }); test("Basic modules API", function () { var slider = newSlider(); $.each(sliderjs.modules(), function (i, module) { var singleton = newSlider({ modules: module }); slider[module](slider[module]()); singleton.opt(module, undefined); singleton.opt(module, singleton.opt(module)); }); }); test("events are working", function () { expect(13); var slider = newSlider(); var cb1 = function(o) { ok(o > 0, "cb1, event "+o) } var cb2 = function(o) { ok(o > 0, "cb2, event "+o); } slider. on("testevent", cb1). trigger("testevent", 1). trigger("testevent", 2). on("testevent", cb2). trigger("testevent", 3). trigger("testevent", 4). trigger("testevent", 5). trigger("testevent", 6). trigger("testevent", 7). off("testevent", cb1). trigger("testevent", 8). off("testevent", cb1). off("testevent", cb1). off("testevent", cb2). trigger("testevent", 9); }) /* * TODO test the module.register, etc.. * test("sliderjs.feature", 20, function () { var feature = "testFirst"; var value = "defaultValue"; var _init = function() { ok(this instanceof sliderjs.Slider, "init: this is instance of Slider"); } var _update = function() { ok(this instanceof sliderjs.Slider, "update: this is instance of Slider"); } sliderjs.feature(feature, { touchOnLoad: true, def: "defaultValue", init: function() { _init && _init.apply(this, arguments); }, update: function(o) { _update && _update.apply(this, arguments); }, answer: 42, something: true }); var slider = newSlider(); equals(slider.opt(feature), value, "feature default set"); slider.opt(feature, value = "foo"); equals(slider.opt(feature), value, "opt works"); slider[feature](value = "bar"); equals(slider[feature](), value, "direct function feature() works"); ok(slider[feature+'_answer'] == 42 && slider[feature+'_something'], "private objects are accessible"); slider[feature+'_something'] = false; var slider2 = newSlider(); ok(slider2[feature+'_something'] && !slider[feature+'_something'], "private objects are instancied and not globals."); var o = {}; o[feature] = "hello"; slider = newSlider(o); equals(slider[feature](), "hello", "Setting an option in the constructor"); slider.touchopt(feature).touchopt(feature); slider.touchopt(feature); slider.touchopt(feature); slider.touchopt(feature); slider.touchopt(feature); _update = null; _init = null; }) */ test("Easing Functions seems correct", function() { for(var k in sliderjs.Easing) { var f = sliderjs.Easing[k]; ok(0==f(0), k+"(0) = 0"); ok(0<=f(0.5) && f(0.5)<=1, k+"(0.5) in [0, 1]"); ok(1==f(1), k+"(1) = 1"); } });