taskbar.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. window.onload = function() {
  2. test( "taskbar basic tests", function() {
  3. // create task bar div
  4. $('#taskbars').append('<hr><h1>taskbar basic tests</h1><div id="taskbar1"></div>')
  5. App.TaskManager.init({
  6. el: $('#taskbar1'),
  7. offlineModus: true,
  8. })
  9. // add tasks
  10. App.TaskManager.execute({
  11. key: 'TestKey1',
  12. controller: 'TestController1',
  13. params: {
  14. message: '#1',
  15. },
  16. show: true,
  17. persistent: false,
  18. })
  19. equal( $('#taskbars .content').length, 1, "check available active contents" );
  20. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  21. equal( $('#taskbars .content.active').text(), "some test controller message:'#1',show:'true',hide:'false',active:'true'", "check active content!" );
  22. // verify
  23. task = App.TaskManager.get( 'TestKey1' )
  24. equal( task.notify, false )
  25. deepEqual( task.state, undefined )
  26. deepEqual( task.params, { "message": "#1" } )
  27. // update
  28. App.TaskManager.update( 'TestKey1', { 'state': 'abc' } )
  29. App.TaskManager.update( 'TestKey1', { 'params': { a: 12 } } )
  30. App.TaskManager.notify( 'TestKey1' )
  31. // verify
  32. task = App.TaskManager.get( 'TestKey1' )
  33. equal( task.notify, true )
  34. deepEqual( task.state, 'abc' )
  35. deepEqual( task.params, { "a": 12 } )
  36. App.TaskManager.execute({
  37. key: 'TestKey2',
  38. controller: 'TestController1',
  39. params: {
  40. message: '#2',
  41. },
  42. show: true,
  43. persistent: false,
  44. })
  45. equal( $('#taskbars .content').length, 2, "check available active contents" );
  46. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  47. equal( $('#taskbars .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!" );
  48. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  49. // check task history
  50. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#2')
  51. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#1')
  52. App.TaskManager.execute({
  53. key: 'TestKey3',
  54. controller: 'TestController1',
  55. params: {
  56. message: '#3',
  57. },
  58. show: false,
  59. persistent: false,
  60. })
  61. equal( $('#taskbars .content').length, 3, "check available active contents" );
  62. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  63. equal( $('#taskbars .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'" );
  64. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  65. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'false',hide:'true',active:'false'", "check active content!" );
  66. App.TaskManager.execute({
  67. key: 'TestKey4',
  68. controller: 'TestController1',
  69. params: {
  70. message: '#4',
  71. },
  72. show: false,
  73. persistent: true,
  74. })
  75. equal( $('#taskbars .content').length, 4, "check available active contents" );
  76. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  77. equal( $('#taskbars .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'" );
  78. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  79. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'false',hide:'true',active:'false'", "check active content!" );
  80. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  81. App.TaskManager.execute({
  82. key: 'TestKey5',
  83. controller: 'TestController1',
  84. params: {
  85. message: '#5',
  86. },
  87. show: true,
  88. persistent: true,
  89. })
  90. equal( $('#taskbars .content').length, 5, "check available active contents" );
  91. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  92. equal( $('#taskbars .content.active').text(), "some test controller message:'#5',show:'true',hide:'false',active:'true'" );
  93. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  94. equal( $('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!" );
  95. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'false',hide:'true',active:'false'", "check active content!" );
  96. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  97. App.TaskManager.execute({
  98. key: 'TestKey6',
  99. controller: 'TestController1',
  100. params: {
  101. message: '#6',
  102. },
  103. show: true,
  104. persistent: false,
  105. })
  106. equal( $('#taskbars .content').length, 6, "check available active contents" );
  107. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  108. equal( $('#taskbars .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'" );
  109. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  110. equal( $('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!" );
  111. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'false',hide:'true',active:'false'", "check active content!" );
  112. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  113. equal( $('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!" );
  114. // remove task#2
  115. App.TaskManager.remove('TestKey2')
  116. equal( $('#taskbars .content').length, 5, "check available active contents" );
  117. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  118. equal( $('#taskbars .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'" );
  119. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  120. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'false',hide:'true',active:'false'", "check active content!" );
  121. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  122. equal( $('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!" );
  123. // activate task#3
  124. App.TaskManager.execute({
  125. key: 'TestKey3',
  126. controller: 'TestController1',
  127. params: {
  128. message: '#3',
  129. },
  130. show: true,
  131. persistent: false,
  132. })
  133. equal( $('#taskbars .content').length, 5, "check available active contents" );
  134. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  135. equal( $('#taskbars .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'" );
  136. equal( $('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!" );
  137. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  138. equal( $('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!" );
  139. // activate task#1
  140. App.TaskManager.execute({
  141. key: 'TestKey1',
  142. controller: 'TestController1',
  143. params: {
  144. message: '#1',
  145. },
  146. show: true,
  147. persistent: false,
  148. })
  149. equal( $('#taskbars .content').length, 5, "check available active contents" );
  150. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  151. equal( $('#taskbars .content.active').text(), "some test controller message:'#1',show:'true',hide:'true',active:'true'" );
  152. equal( $('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!" );
  153. equal( $('#taskbars #content_permanent_TestKey4').text(), "some test controller message:'#4',show:'false',hide:'true',active:'false'", "check active content!" );
  154. equal( $('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!" );
  155. // remove task#1
  156. App.TaskManager.remove('TestKey1')
  157. // verify if task#3 is active
  158. equal( $('#taskbars .content').length, 4, "check available active contents" );
  159. equal( $('#taskbars .content.active').length, 0, "check available active contents" );
  160. equal( $('#taskbars .content.active').text(), "" );
  161. // remove task#3
  162. App.TaskManager.remove('TestKey3')
  163. // verify if task#5 is active
  164. equal( $('#taskbars .content').length, 3, "check available active contents" );
  165. equal( $('#taskbars .content.active').length, 0, "check available active contents" );
  166. equal( $('#taskbars .content.active').text(), "" );
  167. // remove task#5 // can not get removed because of permanent task
  168. App.TaskManager.remove('TestKey5')
  169. // verify if task#5 is active
  170. equal( $('#taskbars .content').length, 3, "check available active contents" );
  171. equal( $('#taskbars .content.active').length, 0, "check available active contents" );
  172. equal( $('#taskbars .content.active').text(), "" );
  173. // create task#7
  174. App.TaskManager.execute({
  175. key: 'TestKey7',
  176. controller: 'TestController1',
  177. params: {
  178. message: '#7',
  179. },
  180. show: true,
  181. persistent: false,
  182. })
  183. equal( $('#taskbars .content').length, 4, "check available active contents" );
  184. equal( $('#taskbars .content.active').length, 1, "check available active contents" );
  185. equal( $('#taskbars .content.active').text(), "some test controller message:'#7',show:'true',hide:'false',active:'true'", "check active content!" );
  186. // remove task#7
  187. App.TaskManager.remove('TestKey7')
  188. // verify if task#5 is active
  189. equal( $('#taskbars .content').length, 3, "check available active contents" );
  190. equal( $('#taskbars .content.active').length, 0, "check available active contents" );
  191. equal( $('#taskbars .content.active').text(), "" );
  192. // check task history
  193. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#6')
  194. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#5')
  195. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#6')
  196. equal( App.TaskManager.nextTaskUrl(), '#/some/url/#6')
  197. // remove task#6
  198. App.TaskManager.remove('TestKey6')
  199. // check task history
  200. equal( App.TaskManager.nextTaskUrl(), false)
  201. equal( App.TaskManager.nextTaskUrl(), false)
  202. // destroy task bar
  203. App.TaskManager.reset()
  204. // check if any taskar exists
  205. equal( $('#taskbars .content').length, 0, "check available active contents" );
  206. })
  207. }