taskbar.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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", "shown": true })
  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. }