BVB Source Codes

PreloadJS Show LoadQueueSpec.js Source code

Return Download PreloadJS: download LoadQueueSpec.js Source code - Download PreloadJS Source code - Type:.js
  1. describe("PreloadJS.LoadQueue", function () {
  2.  
  3.         beforeEach(function () {
  4.                 jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000;
  5.  
  6.                 this.queue = new createjs.LoadQueue();
  7.  
  8.                 var _this = this;
  9.                 this.loadFile = function (fileObj, preferXHR) {
  10.                         if (preferXHR === false || preferXHR === true) {
  11.                                 _this.queue.preferXHR = preferXHR;
  12.                         }
  13.  
  14.                         if (typeof fileObj == "string"|| fileObj.src instanceof Array) {
  15.                                 _this.queue.loadFile(this.getFilePath(fileObj));
  16.                         } else {
  17.                                 fileObj.src = this.getFilePath(fileObj.src);
  18.                                 _this.queue.loadFile(fileObj);
  19.                         }
  20.                 }
  21.         });
  22.  
  23.         describe("Tag Loading", function () {
  24.                 beforeEach(function () {
  25.                         this.queue.setPreferXHR(false);
  26.                         jasmine.DEFAULT_TIMEOUT_INTERVAL = 9000;
  27.                 });
  28.  
  29.                 it("should load JSONp", function (done) {
  30.                         this.queue.addEventListener("fileload", function (evt) {
  31.                                 expect(evt.result).toEqual(jasmine.any(Object));
  32.                                 done();
  33.                         });
  34.                         this.loadFile({
  35.                                 src: "static/jsonpSample.json",
  36.                                 callback: "x",
  37.                                 type: createjs.LoadQueue.JSONP
  38.                         }, false);
  39.                 });
  40.  
  41.                 it("should load and execute Javascript (tag)", function (done) {
  42.                         this.queue.addEventListener("fileload", function (evt) {
  43.                                 expect(window.foo).toBe(true);
  44.                                
  45.                                 delete window.foo;
  46.                                 done();
  47.                         });
  48.                         this.loadFile("static/scriptExample.js", false);
  49.                 });
  50.                                
  51.                 it("should load and execute Javascript (tag) when maintainScriptOrder is false", function (done) {
  52.                
  53.                         this.queue.addEventListener("fileload", function (evt) {
  54.                                 expect(window.foo).toBe(true);
  55.                                
  56.                                 delete window.foo;
  57.                                 done();
  58.                         });
  59.                        
  60.                         this.queue.maintainScriptOrder = false;
  61.                        
  62.                         this.loadFile("static/scriptExample.js", false);
  63.                 });
  64.  
  65.                 it("should load svg", function (done) {
  66.                         this.queue.addEventListener("fileload", function (evt) {
  67.                                 expect(evt.result instanceof Object).toBeTruthy();
  68.                                 done();
  69.                         });
  70.                         this.loadFile("art/gbot.svg", false);
  71.                 });
  72.  
  73.                 it("should load sounds", function (done) {
  74.                         this.queue.addEventListener("fileload", function (evt) {
  75.                 expect(evt.result).toEqual(jasmine.any(HTMLMediaElement));
  76.                                 done();
  77.                         });
  78.  
  79.                         this.loadFile({
  80.                                 src: "audio/Thunder.mp3",
  81.                                 type: createjs.AbstractLoader.SOUND
  82.                         });
  83.                 });
  84.  
  85.                 it("should load video", function (done) {
  86.                         this.queue.addEventListener("fileload", function (evt) {
  87.                 evt.result.addEventListener("playing", function() {
  88.                     expect(evt.result).toEqual(jasmine.any(HTMLMediaElement));
  89.                     done();
  90.                 });
  91.                 evt.result.play();
  92.                         });
  93.  
  94.                         this.loadFile({
  95.                                 src: "static/video.mp4",
  96.                                 type: createjs.AbstractLoader.VIDEO
  97.                         }, false);
  98.                 });
  99.  
  100.                 it("should load an existing video tag", function (done) {
  101.                         this.queue.addEventListener("fileload", function (evt) {
  102.                                 expect(evt.result).toEqual(tag);
  103.                                 done();
  104.                         });
  105.  
  106.                         var tag = document.createElement("video");
  107.                         tag.src = "static/video.mp4";
  108.  
  109.                         this.queue.loadFile(tag);
  110.                 });
  111.  
  112.                 it("should load an existing sound tag", function (done) {
  113.                         this.queue.addEventListener("fileload", function (evt) {
  114.                 evt.result.addEventListener("playing", function() {
  115.                    expect(evt.result).toEqual(tag);
  116.                     done();
  117.                 })
  118.  
  119.                 evt.result.play();
  120.                         });
  121.  
  122.                         var tag = document.createElement("audio");
  123.                         tag.src = "audio/Thunder.mp3";
  124.                         this.queue.loadFile(tag);
  125.                 });
  126.  
  127.                 it("tag sound loading send progress events.", function (done) {
  128.                         var _this = this;
  129.  
  130.             var func = {
  131.                 progress: function () { }
  132.             };
  133.             spyOn(func, 'progress');
  134.  
  135.             var completeCallback = function (evt) {
  136.                 expect(func.progress).toHaveBeenCalled();
  137.                                 sound.removeEventListener("progress", func.progress);
  138.                                 done();
  139.                         };
  140.  
  141.                         var sound = new createjs.SoundLoader({
  142.                                 src: "audio/Thunder.mp3",
  143.                                 type: createjs.LoadQueue.SOUND
  144.                         });
  145.  
  146.                         sound.addEventListener("progress", func.progress);
  147.             sound.addEventListener("complete", completeCallback);
  148.  
  149.                         sound.load();
  150.                 });
  151.  
  152.                 it("should load images (tag)", function (done) {
  153.                         this.queue.addEventListener("fileload", function (evt) {
  154.                 expect(evt.result).toEqual(jasmine.any(HTMLImageElement));
  155.                                 done();
  156.                         });
  157.                         this.loadFile("art/image0.jpg", false);
  158.                 });
  159.  
  160.                 it("should load an existing image tag", function (done) {
  161.                         this.queue.addEventListener("fileload", function (evt) {
  162.                                 expect(evt.result).toEqual(tag);
  163.                                 done();
  164.                         });
  165.  
  166.                         var tag = document.createElement("img");
  167.                         tag.src = "art/image0.jpg";
  168.                         this.queue.loadFile(tag);
  169.                 });
  170.  
  171.                 it("jsonP should error on a 404", function (done) {
  172.                         this.queue.addEventListener("error", function (evt) {
  173.                                 expect(true).toBe(true);
  174.                                 done();
  175.                         });
  176.                         this.loadFile({
  177.                                 src: "static/no_jsonp_here.json",
  178.                                 callback: "x",
  179.                                 type: createjs.LoadQueue.JSONP
  180.                         }, false);
  181.                 });
  182.         });
  183.  
  184.         describe("XHR Loading", function () {
  185.                 it("should load XML", function (done) {
  186.                         this.queue.addEventListener("fileload", function (evt) {
  187.                 expect(evt.result).toEqual(jasmine.any(Document));
  188.                                 done();
  189.                         });
  190.                         this.loadFile("static/grant.xml");
  191.                 });
  192.  
  193.                 it("should load JSON", function (done) {
  194.                         this.queue.addEventListener("fileload", function (evt) {
  195.                 expect(evt.result).toEqual(jasmine.any(Object));
  196.                                 done();
  197.                         });
  198.                         this.loadFile("static/grant.json");
  199.                 });
  200.  
  201.                 it("should load and execute Javascript (xhr)", function (done) {
  202.                         this.queue.addEventListener("fileload", function (evt) {
  203.                                 expect(window.foo).toBe(true);
  204.                                
  205.                                 delete window.foo;
  206.                                 done();
  207.                         });
  208.                         this.loadFile("static/scriptExample.js", true);
  209.                 });
  210.                
  211.                 it("should load and execute Javascript (xhr) when maintainScriptOrder is false", function (done) {
  212.                         this.queue.addEventListener("fileload", function (evt) {
  213.                                 expect(window.foo).toBe(true);
  214.                                
  215.                                 delete window.foo;
  216.                                 done();
  217.                         });
  218.                        
  219.                         this.queue.maintainScriptOrder = false;
  220.                        
  221.                         this.loadFile("static/scriptExample.js", true);
  222.                 });
  223.  
  224.                 it("should load css", function (done) {
  225.                         this.queue.addEventListener("fileload", function (evt) {
  226.                 expect(evt.result).toEqual(jasmine.any(HTMLElement));
  227.                                 done();
  228.                         });
  229.                         this.loadFile("static/font.css");
  230.                 });
  231.  
  232.                 it("should load images (xhr)", function (done) {
  233.                         this.queue.addEventListener("fileload", function (evt) {
  234.                 expect(evt.result).toEqual(jasmine.any(HTMLImageElement));
  235.                                 done();
  236.                         });
  237.                         this.loadFile("art/Autumn.png", true);
  238.                 });
  239.  
  240.                 it("should load binary data", function (done) {
  241.             if (window['ArrayBuffer']) {
  242.                 this.queue.addEventListener("fileload", function (evt) {
  243.                     expect(evt.result).toEqual(jasmine.any(ArrayBuffer));
  244.                     done();
  245.                 });
  246.                 this.loadFile({
  247.                     src: "audio/Thunder.mp3",
  248.                     type: createjs.AbstractLoader.BINARY
  249.                 });
  250.             } else {
  251.                 expect("IE 9").toBe("not working");
  252.                 done();
  253.             }
  254.                 });
  255.  
  256.                 it("should load svg (xhr)", function (done) {
  257.                         this.queue.addEventListener("fileload", function (evt) {
  258.                                 expect(typeof evt.result).toBe("object");
  259.                                 done();
  260.                         });
  261.                         this.loadFile("art/gbot.svg", true);
  262.                 });
  263.  
  264.                 it("should load text", function (done) {
  265.                         this.queue.addEventListener("fileload", function (evt) {
  266.                                 expect(typeof evt.result).toBe("string");
  267.                                 done();
  268.                         });
  269.                         this.loadFile({src: "art/gbot.svg", type: createjs.LoadQueue.TEXT});
  270.                 });
  271.  
  272.         describe("MediaElement Loading", function() {
  273.             it("should load sounds (xhr)", function (done) {
  274.                 this.queue.addEventListener("fileload", function (evt) {
  275.                     evt.result.addEventListener("playing", function() {
  276.                         expect(evt.result).toEqual(jasmine.any(HTMLMediaElement));
  277.                         done();
  278.                     });
  279.                     evt.result.play();
  280.                 });
  281.  
  282.                 this.loadFile({
  283.                     src: "audio/Thunder.mp3",
  284.                     type: createjs.AbstractLoader.SOUND
  285.                 }, true);
  286.             });
  287.  
  288.             it("should load video (xhr)", function (done) {
  289.                 this.queue.addEventListener("fileload", function (evt) {
  290.                     evt.result.addEventListener("playing", function() {
  291.                         expect(evt.result).toEqual(jasmine.any(HTMLMediaElement));
  292.                         done();
  293.                     });
  294.                     evt.result.play();
  295.                 });
  296.  
  297.                 this.loadFile({
  298.                     src: "static/video.mp4",
  299.                     type: createjs.AbstractLoader.VIDEO
  300.                 }, true);
  301.             });
  302.         });
  303.         });
  304.  
  305.         // This fails in Opera and IE (expected, as crossOrigin is not supported)
  306.         it("images should allow crossOrigin access", function (done) {
  307.                 this.queue.addEventListener("fileload", function (evt) {
  308.                         var canvas = document.createElement("canvas");
  309.                         var stage = new createjs.Stage(canvas);
  310.                         var bmp = new createjs.Bitmap(evt.result);
  311.  
  312.                         stage.addChild(bmp);
  313.                         stage.update();
  314.  
  315.                         expect(stage.hitTest(35, 25)).toBe(true);
  316.                         done();
  317.                 });
  318.  
  319.                 this.queue.loadFile({
  320.                         src: "http://dev.gskinner.com/createjs/cors/daisy.png",
  321.                         crossOrigin: true
  322.                 });
  323.         });
  324.  
  325.         it("should load a manifest and its children", function (done) {
  326.                 var func = {
  327.                         fileload: function () {
  328.                         }
  329.                 };
  330.  
  331.                 spyOn(func, "fileload");
  332.  
  333.                 this.queue.addEventListener("fileload", func.fileload);
  334.  
  335.                 this.queue.addEventListener("complete", function (evt) {
  336.                         expect(func.fileload.calls.count()).toBe(5);
  337.                         done();
  338.                 });
  339.                 this.loadFile({
  340.                         src: "static/manifest.json",
  341.                         type: createjs.LoadQueue.MANIFEST
  342.                 });
  343.         });
  344.  
  345.     it("a SpriteSheetLoader should load a SpriteSheet uinsg JSON", function(done) {
  346.         var _this = this;
  347.         this.queue.addEventListener("complete", function (evt) {
  348.             expect(_this.queue.getResult("foo")).toEqual(jasmine.any(createjs.SpriteSheet));
  349.             done();
  350.         });
  351.         this.loadFile({
  352.             id:"foo",
  353.             src: "static/grant.json",
  354.             type: createjs.AbstractLoader.SPRITESHEET
  355.         });
  356.     });
  357.  
  358.     it("a SpriteSheetLoader should load a SpriteSheet using JSONp", function(done) {
  359.         var _this = this;
  360.         this.queue.addEventListener("complete", function (evt) {
  361.             expect(_this.queue.getResult("foo")).toEqual(jasmine.any(createjs.SpriteSheet));
  362.             done();
  363.         });
  364.         this.loadFile({
  365.             id:"foo",
  366.             src: "static/grantp.json",
  367.             callback:"grantp",
  368.             type: createjs.AbstractLoader.SPRITESHEET
  369.         });
  370.     });
  371.  
  372.         it("should send progress events.", function (done) {
  373.                 var _this = this;
  374.  
  375.         var func = {
  376.             progress: function () { }
  377.         };
  378.         spyOn(func, 'progress');
  379.  
  380.                 var completeCallback = function (evt) {
  381.             expect(func.progress).toHaveBeenCalled();
  382.                         _this.queue.removeEventListener("progress", func.progress);
  383.                         done();
  384.                 };
  385.                 this.queue.addEventListener("progress", func.progress);
  386.         this.queue.addEventListener("complete", completeCallback);
  387.  
  388.                 this.loadFile({
  389.                         src: "audio/Thunder.mp3",
  390.                         type: createjs.LoadQueue.SOUND
  391.                 });
  392.         });
  393.  
  394.         it("XHR should error on a 404", function (done) {
  395.                 this.queue.addEventListener("error", function (evt) {
  396.                         expect(evt.title).toBe("FILE_LOAD_ERROR");
  397.                         done();
  398.                 });
  399.                 this.loadFile("This_file_does_not_EXIST_.no");
  400.         });
  401.  
  402.         it("should pass data through to the complete handler", function (done) {
  403.                 this.queue.addEventListener("fileload", function (evt) {
  404.                         expect(evt.item.data).toBe("foo");
  405.                         done();
  406.                 });
  407.                 this.loadFile({
  408.                         src: "art/gbot.svg",
  409.                         type: createjs.LoadQueue.TEXT,
  410.                         data: "foo"
  411.                 });
  412.         });
  413.  
  414.         it("should have custom plugins", function (done) {
  415.                 var SamplePlugin = function () {
  416.                 }
  417.                 var s = SamplePlugin;
  418.                 s.getPreloadHandlers = function () {
  419.                         return {
  420.                                 callback: s.preloadHandler, // Proxy the method to maintain scope
  421.                                 types: [createjs.LoadQueue.JSON],
  422.                                 extensions: ["json"]
  423.                         }
  424.                 };
  425.  
  426.                 s.preloadHandler = function (loadItem) {
  427.                         var options = {};
  428.  
  429.                         // Tell PreloadJS to skip this file
  430.                         if (options.stopDownload) {
  431.                                 return false;
  432.                         }
  433.  
  434.                         // Tell PreloadJS to continue normally
  435.                         if (options.doNothing) {
  436.                                 return true;
  437.                         }
  438.  
  439.                         loadItem.id = "foo";
  440.                         loadItem.data = "foo";
  441.  
  442.                         return true; // Allow the loader to load this.
  443.                 };
  444.  
  445.                 this.queue.installPlugin(SamplePlugin);
  446.  
  447.                 this.queue.addEventListener("fileload", function (evt) {
  448.                         expect(evt.item.id).toBe("foo");
  449.                         expect(evt.item.data).toBe("foo");
  450.                         done();
  451.                 });
  452.                 this.loadFile("static/grant.json");
  453.         });
  454.  
  455.         it("should POST data.", function (done) {
  456.                 var value = {foo: "bar"};
  457.                 this.queue.addEventListener("fileload", function (evt) {
  458.                         expect(evt.result).toBe(JSON.stringify(value));
  459.                         done();
  460.                 });
  461.  
  462.                 // the grunt server will echo back whatever we send it.
  463.                 this.loadFile({
  464.                         src: "",
  465.                         method: createjs.LoadQueue.POST,
  466.                         values: value
  467.                 });
  468.         });
  469.  
  470.         it("should GET data.", function (done) {
  471.                 // !!! If you change value.foo to something else teh Gruntfile connect.middleware function needs to be updated.
  472.                 var value = {foo: "bar", bar: "foo"};
  473.  
  474.                 var q = new createjs.LoadQueue();
  475.  
  476.                 q.addEventListener("fileload", function (evt) {
  477.                         expect(evt.result).toBe(JSON.stringify(value));
  478.                         done();
  479.                 });
  480.  
  481.                 // the grunt server will echo back whatever we send it.
  482.                 q.loadFile({
  483.                         src: "/",
  484.                         method: createjs.LoadQueue.GET,
  485.                         values: value
  486.                 });
  487.         });
  488.  
  489.         it("destroy() should remove all references in a LoadQueue", function () {
  490.                 this.queue.addEventListener("fileload", function (evt) {
  491.                 });
  492.                 this.loadFile({
  493.                         src: "art/gbot.svg",
  494.                         type: createjs.LoadQueue.TEXT,
  495.                         data: "foo"
  496.                 });
  497.  
  498.                 this.queue.destroy();
  499.                 expect(this.queue.hasEventListener("fileload")).toBe(false);
  500.                 expect(this.queue.getItem()).not.toBeDefined();
  501.                 expect(this.queue.getItem(true)).not.toBeDefined();
  502.         });
  503.  
  504.         it("removeAll() should remove all the items in a LoadQueue", function () {
  505.                 this.queue.loadFile("foo.baz", false);
  506.                 this.queue.loadFile("baz.foo", false);
  507.                 expect(this.queue._numItems).toBe(2);
  508.  
  509.                 this.queue.removeAll();
  510.  
  511.                 this.queue.load();
  512.  
  513.                 expect(this.queue._numItems).toBe(0);
  514.         });
  515.  
  516.         it("remove by src should remove foo from the LoadQueue", function (done) {
  517.                 var _this = this;
  518.  
  519.                 this.queue.addEventListener("complete", function (evt) {
  520.                         expect(_this.queue.getItem("foo")).toBeDefined();
  521.                         _this.queue.remove(_this.getFilePath("art/gbot.svg"));
  522.                         expect(_this.queue.getItem("foo")).not.toBeDefined();
  523.                         done();
  524.                 });
  525.  
  526.                 this.loadFile({
  527.                         src: "art/gbot.svg",
  528.                         id: "foo",
  529.                         type: createjs.LoadQueue.TEXT,
  530.                         data: "foo"
  531.                 });
  532.         });
  533.  
  534.         it("remove by id should remove foo from the LoadQueue", function (done) {
  535.                 var _this = this;
  536.  
  537.                 this.queue.addEventListener("complete", function (evt) {
  538.                         expect(_this.queue.getItem("foo")).toBeDefined();
  539.                         _this.queue.remove("foo");
  540.                         expect(_this.queue.getItem("foo")).not.toBeDefined();
  541.                         done();
  542.                 });
  543.  
  544.                 this.loadFile({
  545.                         src: "art/gbot.svg",
  546.                         id: "foo",
  547.                         type: createjs.LoadQueue.TEXT,
  548.                         data: "foo"
  549.                 });
  550.         });
  551.  
  552.         it("stopOnError should suppress events", function (done) {
  553.                 var _this = this;
  554.  
  555.                 var func = {
  556.                         complete: function () {
  557.  
  558.                         }
  559.                 };
  560.  
  561.                 spyOn(func, 'complete');
  562.  
  563.                 setTimeout(function () {
  564.                         expect(func.complete).not.toHaveBeenCalled();
  565.                         done();
  566.                 }, 750);
  567.  
  568.                 this.queue.addEventListener("complete", func.complete);
  569.                 this.queue.stopOnError = true;
  570.                 this.queue.setMaxConnections(2);
  571.                 this.queue.loadManifest(['static/manifest.json', "FileWill404.html", "static/grant.xml", "static/grant.json"], true);
  572.  
  573.         });
  574.  
  575.  
  576.     describe("Font Loading", function () {
  577.  
  578.         it ("should load fonts by src", function(done) {
  579.             var func = {
  580.                 fileload: function () {
  581.                 }
  582.             };
  583.  
  584.             spyOn(func, "fileload");
  585.  
  586.             this.queue.addEventListener("fileload", func.fileload);
  587.  
  588.             this.queue.addEventListener("complete", function (evt) {
  589.                 expect(func.fileload.calls.count()).toBe(1);
  590.                 done();
  591.             });
  592.  
  593.             this.loadFile({
  594.                 src: "fonts/regul-bold.woff",
  595.                 type: createjs.LoadQueue.FONT
  596.             });
  597.         });
  598.  
  599.         it ("should load fonts by array", function(done) {
  600.             var func = {
  601.                 fileload: function () {
  602.                 }
  603.             };
  604.  
  605.             spyOn(func, "fileload");
  606.  
  607.             this.queue.addEventListener("fileload", func.fileload);
  608.  
  609.             this.queue.addEventListener("complete", function (evt) {
  610.                 expect(func.fileload.calls.count()).toBe(1);
  611.                 done();
  612.             });
  613.  
  614.             this.loadFile({
  615.                 src: [
  616.                     "fonts/regul-book.woff",
  617.                     "fonts/regul-bold.woff"
  618.                 ],
  619.                 type: createjs.LoadQueue.FONT
  620.             });
  621.         });
  622.  
  623.         it ("should load google fonts", function(done) {
  624.             var func = {
  625.                 fileload: function () {
  626.                 }
  627.             };
  628.  
  629.             spyOn(func, "fileload");
  630.  
  631.             this.queue.addEventListener("fileload", func.fileload);
  632.  
  633.             this.queue.addEventListener("complete", function (evt) {
  634.                 expect(func.fileload.calls.count()).toBe(1);
  635.                 done();
  636.             });
  637.  
  638.             this.loadFile({
  639.                 src: "https://fonts.googleapis.com/css?family=Roboto:400,700,400italic,700italic",
  640.                 type: createjs.LoadQueue.FONTCSS
  641.             });
  642.         });
  643.     });
  644.  
  645. });
  646.  
downloadLoadQueueSpec.js Source code - Download PreloadJS Source code
Related Source Codes/Software:
gotraining - Go Training Class Material : ... 2017-04-29
eigen - The Art World in Your Pocket or Your Trendy Tech C... 2017-04-29
rack-cors - Rack Middleware for handling Cross-Origin Resource... 2017-04-29
react-redux-tutorial - react-redux-tutorial in Chinese, catalog &&... 2017-04-29
swifter - Tiny http server engine written in Swift programmi... 2017-04-29
boto3 - AWS SDK for Python http://a... 2017-04-30
Fluidbox - Replicating and improving the lightbox module seen... 2017-04-30
jo - JSON output from a shell 2017-04-30
qTip2 - qTip2 - Pretty powerful tooltips ... 2017-04-30
swing - A swipeable cards interface. The swipe-left/swipe-... 2017-04-30
growth - Growth - App to help you Be Awesome Developer &... 2017-05-06
TourGuide - TourGuide is an Android library that aims to provi... 2017-05-06
urh - Universal Radio Hacker: investigate wireless proto... 2017-05-06
Gutenberg - A meaningful web typography starter kit. 2017-05-06
NiftyDialogEffects - Nifty Modal Dialog Effect 2017-05-06
opengapps - The main repository of the Open GApps Project ... 2017-05-06
The micro CMS network asked administration system (the original PHP168 S series) v20161230 - 1, upgraded the mobile version. 2, upgrade the st... 2017-05-06
The news industry marketing website HTML 5 v5.7 site source code - Dedecms latest version of kernel development and o... 2017-05-06
Dream weaving white large entrepreneurial wealth information class site template v1.0 - Dream white large entrepreneurial wealth of inform... 2017-05-06

 Back to top