runner.js 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. var config = {
  2. baseUrl: '../',
  3. paths: {
  4. "console-reporter": "tests/console-reporter",
  5. "IPv6": "node_modules/urijs/src/IPv6",
  6. "SecondLevelDomains": "node_modules/urijs/src/SecondLevelDomains",
  7. "almond": "node_modules/almond/almond",
  8. "awesomplete": "node_modules/awesomplete-avoid-xss/awesomplete",
  9. "babel": "node_modules/requirejs-babel/babel-5.8.34.min",
  10. "backbone": "node_modules/backbone/backbone",
  11. "backbone.browserStorage": "node_modules/backbone.browserStorage/backbone.browserStorage",
  12. "backbone.nativeview": "node_modules/backbone.nativeview/backbone.nativeview",
  13. "backbone.noconflict": "src/backbone.noconflict",
  14. "backbone.orderedlistview": "node_modules/backbone.overview/dist/backbone.orderedlistview",
  15. "backbone.overview": "node_modules/backbone.overview/dist/backbone.overview",
  16. "backbone.vdomview": "node_modules/backbone.vdomview/dist/backbone.vdomview",
  17. "bootstrap": "node_modules/bootstrap.native/dist/bootstrap-native-v4",
  18. "emojione": "node_modules/emojione/lib/js/emojione",
  19. "es6-promise": "node_modules/es6-promise/dist/es6-promise.auto",
  20. "eventemitter": "node_modules/otr/build/dep/eventemitter",
  21. "filesize": "node_modules/filesize/lib/filesize",
  22. "form-utils": "src/utils/form",
  23. "i18n": "src/i18n",
  24. "jed": "node_modules/jed/jed",
  25. "jquery": "src/jquery-stub",
  26. "lodash": "node_modules/lodash/lodash",
  27. "lodash.converter": "3rdparty/lodash.fp",
  28. "lodash.fp": "src/lodash.fp",
  29. "lodash.noconflict": "src/lodash.noconflict",
  30. "message-utils": "src/utils/message",
  31. "muc-utils": "src/utils/muc",
  32. "pluggable": "node_modules/pluggable.js/dist/pluggable",
  33. "polyfill": "src/polyfill",
  34. "punycode": "node_modules/urijs/src/punycode",
  35. "sizzle": "node_modules/sizzle/dist/sizzle",
  36. "snabbdom": "node_modules/snabbdom/dist/snabbdom",
  37. "snabbdom-attributes": "node_modules/snabbdom/dist/snabbdom-attributes",
  38. "snabbdom-class": "node_modules/snabbdom/dist/snabbdom-class",
  39. "snabbdom-dataset": "node_modules/snabbdom/dist/snabbdom-dataset",
  40. "snabbdom-eventlisteners": "node_modules/snabbdom/dist/snabbdom-eventlisteners",
  41. "snabbdom-props": "node_modules/snabbdom/dist/snabbdom-props",
  42. "snabbdom-style": "node_modules/snabbdom/dist/snabbdom-style",
  43. "strophe": "node_modules/strophe.js/strophe",
  44. "strophe.ping": "node_modules/strophejs-plugin-ping/strophe.ping",
  45. "strophe.rsm": "node_modules/strophejs-plugin-rsm/strophe.rsm",
  46. "text": "node_modules/text/text",
  47. "tovnode": "node_modules/snabbdom/dist/tovnode",
  48. "tpl": "node_modules/lodash-template-loader/loader",
  49. "underscore": "src/underscore-shim",
  50. "uri": "node_modules/urijs/src/URI",
  51. "utils": "src/utils/core",
  52. "vdom-parser": "node_modules/vdom-parser/dist",
  53. "xss": "node_modules/xss/dist/xss",
  54. "xss.noconflict": "src/xss.noconflict",
  55. // Converse
  56. "converse": "src/converse",
  57. "converse-bookmarks": "src/converse-bookmarks",
  58. "converse-chatboxes": "src/converse-chatboxes",
  59. "converse-caps": "src/converse-caps",
  60. "converse-chatview": "src/converse-chatview",
  61. "converse-controlbox": "src/converse-controlbox",
  62. "converse-core": "src/converse-core",
  63. "converse-disco": "src/converse-disco",
  64. "converse-dragresize": "src/converse-dragresize",
  65. "converse-embedded": "src/converse-embedded",
  66. "converse-fullscreen": "src/converse-fullscreen",
  67. "converse-headline": "src/converse-headline",
  68. "converse-mam": "src/converse-mam",
  69. "converse-message-view": "src/converse-message-view",
  70. "converse-minimize": "src/converse-minimize",
  71. "converse-modal": "src/converse-modal",
  72. "converse-muc": "src/converse-muc",
  73. "converse-muc-views": "src/converse-muc-views",
  74. "converse-notification": "src/converse-notification",
  75. "converse-otr": "src/converse-otr",
  76. "converse-ping": "src/converse-ping",
  77. "converse-profile": "src/converse-profile",
  78. "converse-register": "src/converse-register",
  79. "converse-roomslist": "src/converse-roomslist",
  80. "converse-roster": "src/converse-roster",
  81. "converse-rosterview": "src/converse-rosterview",
  82. "converse-singleton": "src/converse-singleton",
  83. "converse-vcard": "src/converse-vcard",
  84. // Off-the-record-encryption
  85. // "bigint": "node_modules/otr/build/dep/bigint",
  86. "bigint": "3rdparty/bigint",
  87. "crypto": "node_modules/otr/build/dep/crypto",
  88. "salsa20": "node_modules/otr/build/dep/salsa20",
  89. "otr": "node_modules/otr/build/otr",
  90. },
  91. packages: [{
  92. 'name': 'moment',
  93. 'location': 'node_modules/moment',
  94. 'main': 'moment'
  95. }],
  96. map: {
  97. // '*' means all modules will get the '*.noconflict' version
  98. // as their dependency.
  99. '*': {
  100. 'backbone': 'backbone.noconflict',
  101. 'lodash': 'lodash.noconflict'
  102. },
  103. // '*.noconflict' wants the real module
  104. // If this line was not here, there would
  105. // be an unresolvable cyclic dependency.
  106. 'backbone.noconflict': { 'backbone': 'backbone' },
  107. 'lodash.noconflict': { 'lodash': 'lodash' }
  108. },
  109. lodashLoader: {
  110. // Configuration for requirejs-tpl
  111. // Use Mustache style syntax for variable interpolation
  112. root: "src/templates/",
  113. templateSettings: {
  114. "escape": /\{\{\{([\s\S]+?)\}\}\}/g,
  115. "evaluate": /\{\[([\s\S]+?)\]\}/g,
  116. "interpolate": /\{\{([\s\S]+?)\}\}/g,
  117. // By default, template places the values from your data in the
  118. // local scope via the with statement. However, you can specify
  119. // a single variable name with the variable setting. This can
  120. // significantly improve the speed at which a template is able
  121. // to render.
  122. "variable": 'o'
  123. }
  124. },
  125. // define module dependencies for modules not using define
  126. shim: {
  127. 'backbone.orderedlistview': { deps: ['backbone.nativeview'] },
  128. 'backbone.overview': { deps: ['backbone.nativeview'] },
  129. 'backbone.vdomview': { deps: ['backbone.nativeview'] },
  130. 'awesomplete': { exports: 'Awesomplete'},
  131. 'emojione': { exports: 'emojione'},
  132. 'xss': {
  133. 'init': function (xss_noconflict) {
  134. return {
  135. filterXSS: window.filterXSS,
  136. filterCSS: window.filterCSS
  137. }
  138. }
  139. }
  140. }
  141. };
  142. // Extra test dependencies
  143. config.paths.jquery = "node_modules/jquery/dist/jquery";
  144. config.paths.mock = "tests/mock";
  145. config.paths['wait-until-promise'] = "node_modules/wait-until-promise/index";
  146. config.paths['test-utils'] = "tests/utils";
  147. config.paths.sinon = "node_modules/sinon/pkg/sinon";
  148. config.paths.transcripts = "converse-logs/converse-logs";
  149. config.paths["jasmine-core"] = "node_modules/jasmine-core/lib/jasmine-core/jasmine";
  150. config.paths.jasmine = "node_modules/jasmine-core/lib/jasmine-core/boot";
  151. config.paths["jasmine-console"] = "node_modules/jasmine-core/lib/console/console";
  152. config.paths["jasmine-html"] = "node_modules/jasmine-core/lib/jasmine-core/jasmine-html";
  153. config.shim.jasmine = {
  154. exports: 'window.jasmineRequire'
  155. };
  156. config.shim['jasmine-html'] = {
  157. deps: ['jasmine-core'],
  158. exports: 'window.jasmineRequire'
  159. };
  160. config.shim['jasmine-console'] = {
  161. deps: ['jasmine-core'],
  162. exports: 'window.jasmineRequire'
  163. };
  164. config.shim.jasmine = {
  165. deps: ['jasmine-core', 'jasmine-html', 'jasmine-console'],
  166. exports: 'window.jasmine'
  167. };
  168. require.config(config);
  169. var specs = [
  170. "jasmine",
  171. //"spec/transcripts",
  172. //"spec/otr",
  173. "spec/spoilers",
  174. "spec/profiling",
  175. "spec/utils",
  176. "spec/converse",
  177. "spec/bookmarks",
  178. "spec/roomslist",
  179. "spec/headline",
  180. "spec/disco",
  181. "spec/protocol",
  182. "spec/presence",
  183. "spec/eventemitter",
  184. "spec/ping",
  185. "spec/push",
  186. "spec/xmppstatus",
  187. "spec/mam",
  188. "spec/omemo",
  189. "spec/controlbox",
  190. "spec/roster",
  191. "spec/chatbox",
  192. "spec/user-details-modal",
  193. "spec/messages",
  194. "spec/chatroom",
  195. "spec/room_registration",
  196. "spec/autocomplete",
  197. "spec/minchats",
  198. "spec/notification",
  199. "spec/login",
  200. "spec/register",
  201. "spec/http-file-upload"
  202. ];
  203. require(['console-reporter', 'mock', 'sinon', 'wait-until-promise', 'pluggable'],
  204. function(ConsoleReporter, mock, sinon, waitUntilPromise, pluggable) {
  205. if (window.view_mode) {
  206. mock.view_mode = window.view_mode;
  207. }
  208. window.sinon = sinon;
  209. window.waitUntilPromise = waitUntilPromise.default;
  210. window.localStorage.clear();
  211. window.sessionStorage.clear();
  212. // Load the specs
  213. require(specs, function (jasmine) {
  214. var jasmineEnv = jasmine.getEnv();
  215. jasmineEnv.addReporter(new ConsoleReporter());
  216. window.onload();
  217. });
  218. });