routed-links-test.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import Ember from 'ember';
  2. import {
  3. moduleFor,
  4. test
  5. } from 'ember-qunit';
  6. moduleFor('component:routed-links', 'RoutedLinks component');
  7. test('it exists', function(assert) {
  8. assert.expect(1);
  9. var component = this.subject();
  10. assert.ok(component);
  11. });
  12. test('cleanHref validates and cleans hrefs', function(assert) {
  13. assert.expect(15);
  14. var router = Ember.Object.create({
  15. 'rootURL': '/misago/'
  16. });
  17. var component = this.subject();
  18. component.set('staticUrl', '/static/');
  19. component.set('mediaUrl', '/media/');
  20. var location = window.location;
  21. // non-forbidden relative url passes
  22. assert.equal(component.cleanHref(router, '/misago/some-url/'), '/misago/some-url/');
  23. // protocol relative url passes
  24. assert.equal(component.cleanHref(router, '//' + location.host + '/misago/some-url/'), '/misago/some-url/');
  25. // whole url passes
  26. assert.equal(component.cleanHref(router, 'http://' + location.host + '/misago/some-url/'), '/misago/some-url/');
  27. // invalid app path fails
  28. assert.ok(!component.cleanHref(router, '/django/some-url/'));
  29. // invalid protocol fails
  30. assert.ok(!component.cleanHref(router, 'https://' + location.host + '/misago/some-url/'));
  31. // invalid host fails
  32. assert.ok(!component.cleanHref(router, '//notlocalhost.com/misago/some-url/'));
  33. // static/media/avatar-server urls fail
  34. router.set('rootURL', '/');
  35. assert.ok(!component.cleanHref(router, '/static/some-url/'));
  36. assert.ok(!component.cleanHref(router, '/media/some-url/'));
  37. assert.ok(!component.cleanHref(router, '/user-avatar/some-url/'));
  38. assert.ok(!component.cleanHref(router, '//' + location.host + '/static/some-url/'));
  39. assert.ok(!component.cleanHref(router, '//' + location.host + '/media/some-url/'));
  40. assert.ok(!component.cleanHref(router, '//' + location.host + '/user-avatar/some-url/'));
  41. assert.ok(!component.cleanHref(router, 'http://' + location.host + '/static/some-url/'));
  42. assert.ok(!component.cleanHref(router, 'http://' + location.host + '/media/some-url/'));
  43. assert.ok(!component.cleanHref(router, 'http://' + location.host + '/user-avatar/some-url/'));
  44. });