UI.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>Plupload: Test UI Widget</title>
  6. <script src="../loader.js"></script>
  7. <script type="text/javascript">
  8. QUnit.config.reorder = false;
  9. QUnit.config.testTimeout = 2000;
  10. QUnit.config.autostart = false;
  11. FileHash.init({
  12. files: ['files/01.min.js', 'files/02.min.js'],
  13. onready: function() {
  14. QUnit.start();
  15. }
  16. });
  17. o.Env.swf_url = "../../js/flash/Moxie.swf";
  18. o.Env.xap_url = "../../js/silverlight/Moxie.xap";
  19. module("Methods", {
  20. teardown: function() {
  21. $('#qunit-fixture').plupload('destroy');
  22. }
  23. });
  24. test("getUploader()", function(assert) {
  25. stop();
  26. $('#qunit-fixture').plupload({
  27. runtimes: 'test',
  28. url: '../upload.php',
  29. ready: function(e, o) {
  30. start();
  31. assert.ok($(this).plupload('getUploader') instanceof plupload.Uploader,
  32. 'Retrieved a reference to an internal plupload.Uploader object.');
  33. },
  34. error: function() {
  35. start();
  36. assert.ok(false, "Plupload didn't initialise.");
  37. }
  38. });
  39. });
  40. test("refresh()", function(assert) {
  41. stop();
  42. $('#qunit-fixture').plupload({
  43. runtimes: 'test',
  44. url: '../upload.php',
  45. ready: function(e, o) {
  46. o.up.bind('refresh', function() {
  47. start();
  48. assert.ok(true,
  49. 'Refresh has been triggered.');
  50. });
  51. $(this).plupload('refresh');
  52. },
  53. error: function() {
  54. start();
  55. assert.ok(false, "Plupload didn't initialise.");
  56. }
  57. });
  58. });
  59. module("Events", {
  60. teardown: function() {
  61. $('#qunit-fixture').plupload('destroy');
  62. }
  63. });
  64. test('ready', function(assert) {
  65. expect(2);
  66. stop();
  67. $('#qunit-fixture').plupload({
  68. runtimes: 'test',
  69. url: '../upload.php',
  70. ready: function(e, o) {
  71. start();
  72. assert.ok(true, 'ready fired.');
  73. assert.ok(o.up instanceof plupload.Uploader,
  74. 'Second arguments up property is plupload.Uploader object.');
  75. },
  76. error: function() {
  77. start();
  78. assert.ok(false, "Plupload didn't initialise.");
  79. }
  80. });
  81. });
  82. test('selected (uses - event:ready)', function(assert) {
  83. var files = FileHash.getRuntimeFiles();
  84. stop();
  85. $('#qunit-fixture').plupload({
  86. runtimes: 'test',
  87. url: '../upload.php',
  88. ready: function(e, o) {
  89. o.up.addFile(files);
  90. },
  91. selected: function(e, o) {
  92. start();
  93. assert.ok(true, 'selected fired.');
  94. assert.ok(o.files, "Event object contains files property.");
  95. assert.equal(o.files.length, files.length,
  96. files.length + " files were selected (added to the queue)");
  97. assert.ok(o.files[0] instanceof plupload.File, "Selected file is an instance of plupload.File.");
  98. },
  99. error: function() {
  100. start();
  101. assert.ok(false, "Plupload didn't initialise.");
  102. }
  103. });
  104. });
  105. test('started, stopped, progress, uploaded, complete (uses - event:ready, prop:autostart)', function(assert) {
  106. var files = FileHash.getRuntimeFiles();
  107. var events = {
  108. started: 0,
  109. stopped: 0,
  110. progress: 0,
  111. uploaded: 0,
  112. complete: 0
  113. };
  114. stop();
  115. $('#qunit-fixture').plupload({
  116. runtimes: 'test',
  117. url: '../upload.php',
  118. autostart: true,
  119. ready: function(e, o) {
  120. o.up.addFile(files[0]);
  121. },
  122. started: function(e, o) {
  123. events[e.type]++;
  124. },
  125. stopped: function(e, o) {
  126. events[e.type]++;
  127. },
  128. progress: function(e, o) {
  129. events[e.type]++;
  130. },
  131. uploaded: function(e, o) {
  132. events[e.type]++;
  133. assert.ok(o.file instanceof plupload.File, "uploaded: Event object contains file property.");
  134. assert.equal(typeof(o.result), 'object', "uploaded: Event object contains result property.");
  135. assert.deepEqual([
  136. !!o.result.response,
  137. o.result.status,
  138. !!o.result.responseHeaders
  139. ], [
  140. true,
  141. 200,
  142. true
  143. ], "uploaded: result property contains server response, status code and response headers.");
  144. },
  145. complete: function(e, o) {
  146. start();
  147. events[e.type]++;
  148. assert.equal(events.started, 1, "start fired 1 time.");
  149. assert.equal(events.stopped, 1, "stop fired 1 time.");
  150. assert.ok(events.progress, "progress fired "+events.progress+" time(s).");
  151. assert.equal(events.uploaded, 1, "uploaded fired 1 time.");
  152. assert.equal(events.complete, 1, "complete fired 1 time.");
  153. },
  154. error: function() {
  155. start();
  156. assert.ok(false, "Plupload didn't initialise.");
  157. }
  158. });
  159. });
  160. </script>
  161. </head>
  162. <body>
  163. <div id="qunit"></div>
  164. <div id="qunit-fixture" style="position: relative; top: 0 !important; left: 0 !important; width: 100%; height: auto;"></div>
  165. </body>
  166. </html>