agent_ticket_actions_level3_test.rb 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. # encoding: utf-8
  2. require 'browser_test_helper'
  3. class AgentTicketActionsLevel3Test < TestCase
  4. def test_check_changes
  5. @browser = browser_instance
  6. login(
  7. username: 'agent1@example.com',
  8. password: 'test',
  9. url: browser_url,
  10. )
  11. tasks_close_all()
  12. # confirm on create
  13. ticket_create(
  14. data: {
  15. customer: 'nico',
  16. group: 'Users',
  17. title: 'some changes',
  18. body: 'some body 123äöü - changes',
  19. },
  20. do_not_submit: true,
  21. )
  22. close_task(
  23. data: {
  24. title: 'some changes',
  25. },
  26. discard_changes: true,
  27. )
  28. sleep 1
  29. # confirm on zoom
  30. ticket1 = ticket_create(
  31. data: {
  32. customer: 'nico',
  33. group: 'Users',
  34. title: 'some changes',
  35. body: 'some body 123äöü - changes',
  36. },
  37. )
  38. ticket_update(
  39. data: {
  40. body: 'some note',
  41. },
  42. do_not_submit: true,
  43. )
  44. close_task(
  45. data: {
  46. title: 'some changes',
  47. },
  48. discard_changes: true,
  49. )
  50. end
  51. def test_work_with_two_browser_on_same_ticket_edit
  52. browser1 = browser_instance
  53. login(
  54. browser: browser1,
  55. username: 'master@example.com',
  56. password: 'test',
  57. url: browser_url,
  58. )
  59. tasks_close_all(browser: browser1)
  60. browser2 = browser_instance
  61. login(
  62. browser: browser2,
  63. username: 'agent1@example.com',
  64. password: 'test',
  65. url: browser_url,
  66. )
  67. tasks_close_all(browser: browser2)
  68. # create ticket
  69. ticket1 = ticket_create(
  70. browser: browser1,
  71. data: {
  72. group: 'Users',
  73. customer: 'nicole',
  74. title: 'some level 3 <b>subject</b> 123äöü',
  75. body: 'some level 3 <b>body</b> 123äöü',
  76. }
  77. )
  78. # open ticket in second browser
  79. ticket_open_by_search(
  80. browser: browser2,
  81. number: ticket1[:number],
  82. )
  83. watch_for(
  84. browser: browser2,
  85. css: '.active div.ticket-article',
  86. value: 'some level 3 <b>body</b> 123äöü',
  87. )
  88. # change edit screen in instance 1
  89. ticket_update(
  90. browser: browser1,
  91. data: {
  92. body: 'some level 3 <b>body</b> in instance 1',
  93. },
  94. do_not_submit: true,
  95. )
  96. watch_for(
  97. browser: browser1,
  98. css: '.content.active .js-reset',
  99. value: '(Discard your unsaved changes.|Verwerfen der)',
  100. no_quote: true,
  101. )
  102. # update ticket in instance 2
  103. ticket_update(
  104. browser: browser2,
  105. data: {
  106. body: 'some level 3 <b>body</b> in instance 2',
  107. },
  108. do_not_submit: true,
  109. )
  110. watch_for(
  111. browser: browser2,
  112. css: '.content.active .js-reset',
  113. value: '(Discard your unsaved changes.|Verwerfen der)',
  114. no_quote: true,
  115. )
  116. click(
  117. browser: browser2,
  118. css: '.active .js-submit',
  119. )
  120. # discard changes should gone away
  121. watch_for_disappear(
  122. browser: browser2,
  123. css: '.content.active .js-reset',
  124. value: '(Discard your unsaved changes.|Verwerfen der)',
  125. no_quote: true,
  126. )
  127. ticket_verify(
  128. browser: browser2,
  129. data: {
  130. body: '',
  131. },
  132. )
  133. # check content and edit screen in instance 1
  134. match(
  135. browser: browser2,
  136. css: '.active div.ticket-article',
  137. value: 'some level 3 <b>body</b> in instance 2',
  138. )
  139. ticket_verify(
  140. browser: browser1,
  141. data: {
  142. body: 'some level 3 <b>body</b> in instance 1',
  143. },
  144. )
  145. # update ticket in instance 1
  146. click(
  147. browser: browser1,
  148. css: '.active .js-submit',
  149. )
  150. watch_for(
  151. browser: browser1,
  152. css: '.active div.ticket-article',
  153. value: 'some level 3 <b>body</b> in instance 2',
  154. )
  155. sleep 1
  156. match_not(
  157. browser: browser1,
  158. css: '.content.active .js-reset',
  159. value: '(Discard your unsaved changes.|Verwerfen der)',
  160. no_quote: true,
  161. )
  162. # check content in instance 2
  163. watch_for(
  164. browser: browser2,
  165. css: '.active div.ticket-article',
  166. value: 'some level 3 <b>body</b> in instance 1',
  167. )
  168. # check content and edit screen in instance 1+2
  169. ticket_verify(
  170. browser: browser1,
  171. data: {
  172. body: '',
  173. },
  174. )
  175. match_not(
  176. browser: browser1,
  177. css: '.content.active .js-reset',
  178. value: '(Discard your unsaved changes.|Verwerfen der)',
  179. no_quote: true,
  180. )
  181. ticket_verify(
  182. browser: browser2,
  183. data: {
  184. body: '',
  185. },
  186. )
  187. match_not(
  188. browser: browser2,
  189. css: '.content.active .js-reset',
  190. value: '(Discard your unsaved changes.|Verwerfen der)',
  191. no_quote: true,
  192. )
  193. # reload instances, verify again
  194. reload(
  195. browser: browser1,
  196. )
  197. reload(
  198. browser: browser2,
  199. )
  200. # check content and edit screen in instance 1+2
  201. ticket_verify(
  202. browser: browser1,
  203. data: {
  204. body: '',
  205. },
  206. )
  207. match_not(
  208. browser: browser1,
  209. css: '.content.active .js-reset',
  210. value: '(Discard your unsaved changes.|Verwerfen der)',
  211. no_quote: true,
  212. )
  213. ticket_verify(
  214. browser: browser2,
  215. data: {
  216. body: '',
  217. },
  218. )
  219. match_not(
  220. browser: browser2,
  221. css: '.content.active .js-reset',
  222. value: '(Discard your unsaved changes.|Verwerfen der)',
  223. no_quote: true,
  224. )
  225. # change form of ticket, reset, reload and verify in instance 2
  226. ticket_update(
  227. browser: browser2,
  228. data: {
  229. body: '22 some level 3 <b>body</b> in instance 2',
  230. },
  231. do_not_submit: true,
  232. )
  233. watch_for(
  234. browser: browser2,
  235. css: '.content.active .js-reset',
  236. value: '(Discard your unsaved changes.|Verwerfen der)',
  237. no_quote: true,
  238. )
  239. sleep 3
  240. reload(
  241. browser: browser2,
  242. )
  243. sleep 3
  244. click(
  245. css: '.content.active .js-reset',
  246. browser: browser2,
  247. )
  248. sleep 4
  249. ticket_verify(
  250. browser: browser2,
  251. data: {
  252. body: '',
  253. },
  254. )
  255. # change form of ticket in instance 2
  256. ticket_update(
  257. browser: browser2,
  258. data: {
  259. body: '22 some level 3 <b>body</b> in instance 2',
  260. },
  261. do_not_submit: true,
  262. )
  263. watch_for(
  264. browser: browser2,
  265. css: '.content.active .js-reset',
  266. value: '(Discard your unsaved changes.|Verwerfen der)',
  267. no_quote: true,
  268. )
  269. sleep 2
  270. reload(
  271. browser: browser2,
  272. )
  273. ticket_verify(
  274. browser: browser2,
  275. data: {
  276. body: '22 some level 3 <b>body</b> in instance 2',
  277. },
  278. )
  279. watch_for(
  280. browser: browser2,
  281. css: '.content.active .js-reset',
  282. value: '(Discard your unsaved changes.|Verwerfen der)',
  283. no_quote: true,
  284. )
  285. task_type(
  286. browser: browser2,
  287. type: 'stayOnTab',
  288. )
  289. click(
  290. browser: browser2,
  291. css: '.active .js-submit',
  292. )
  293. # discard changes should gone away
  294. watch_for_disappear(
  295. browser: browser2,
  296. css: '.content.active .js-reset',
  297. value: '(Discard your unsaved changes.|Verwerfen der)',
  298. no_quote: true,
  299. )
  300. # check if new article is empty
  301. ticket_verify(
  302. browser: browser2,
  303. data: {
  304. body: '',
  305. },
  306. )
  307. watch_for(
  308. browser: browser2,
  309. css: '.active div.ticket-article',
  310. value: '22 some level 3 <b>body</b> in instance 2',
  311. )
  312. end
  313. end