urlconf.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. (function (Misago) {
  2. 'use strict';
  3. var urlconf = null;
  4. QUnit.module("UrlConf", {
  5. beforeEach: function() {
  6. urlconf = new Misago.UrlConf();
  7. }
  8. });
  9. QUnit.test("url registers pattern in config", function(assert) {
  10. urlconf.url('/test/', 'route', 'test_url');
  11. var patterns = urlconf.patterns();
  12. assert.equal(patterns.length, 1,
  13. 'url() has registered single URL in config');
  14. assert.deepEqual(
  15. patterns[0],
  16. {pattern: '/test/', component: 'route', name: 'test_url'},
  17. 'url() has registered valid URL in config');
  18. });
  19. QUnit.test("url normalizes route component name", function(assert) {
  20. urlconf.url('/test/', 'some_test_route', 'test_url');
  21. var patterns = urlconf.patterns();
  22. assert.equal(patterns[0].component, 'some-test-route',
  23. 'url() has normalized component name underscores to comas');
  24. });
  25. QUnit.test("UrlConf.url(conf) includes child config", function(assert) {
  26. var component = 'some-test';
  27. urlconf.url('', component, 'test_url');
  28. urlconf.url('/test/', component, 'test_url');
  29. var childconf = new Misago.UrlConf();
  30. childconf.url('/', component, 'users');
  31. childconf.url('/user/', component, 'user');
  32. urlconf.url('/users/', childconf);
  33. var expected_patterns = [
  34. {pattern: '/', component: component, name: 'test_url'},
  35. {pattern: '/test/', component: component, name: 'test_url'},
  36. {pattern: '/users/', component: component, name: 'users'},
  37. {pattern: '/users/user/', component: component, name: 'user'}
  38. ];
  39. assert.deepEqual(urlconf.patterns(), expected_patterns,
  40. 'url() has included other urlconf');
  41. });
  42. }(Misago.prototype));