title.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. (function () {
  2. 'use strict';
  3. var orgTitle = document.title;
  4. QUnit.module("Page Title", {
  5. beforeEach: function() {
  6. orgTitle = document.title;
  7. },
  8. afterEach: function() {
  9. document.title = orgTitle;
  10. }
  11. });
  12. QUnit.test("service factory", function(assert) {
  13. var service = getMisagoService('page-title');
  14. var container = {settings: {forum_name: 'Lorem Ipsum'}};
  15. service(container);
  16. assert.ok(container.title.set, 'title.set is set on container');
  17. });
  18. QUnit.test("title.set() call with no arguments", function(assert) {
  19. var service = getMisagoService('page-title');
  20. var container = {settings: {forum_name: 'Lorem Ipsum'}};
  21. service(container);
  22. container.title.set();
  23. assert.equal(document.title, 'Lorem Ipsum',
  24. 'no argument call for title.set changed title to Lorem Ipsum');
  25. });
  26. QUnit.test("title.set() call with string argument", function(assert) {
  27. var service = getMisagoService('page-title');
  28. var container = {settings: {forum_name: 'Lorem Ipsum'}};
  29. service(container);
  30. container.title.set("Hello!");
  31. assert.equal(
  32. document.title, 'Hello! | Lorem Ipsum', 'string argument changed title');
  33. });
  34. QUnit.test("title.set() call with object argument", function(assert) {
  35. var service = getMisagoService('page-title');
  36. var container = {settings: {forum_name: 'Lorem Ipsum'}};
  37. service(container);
  38. container.title.set({title: "Hello!"});
  39. assert.equal(
  40. document.title, 'Hello! | Lorem Ipsum', 'object argument changed title');
  41. container.title.set({title: "User", page: 1});
  42. assert.equal(document.title, 'User | Lorem Ipsum',
  43. 'object argument with first page changed title');
  44. container.title.set({title: "User", page: 5});
  45. assert.equal(document.title, 'User (page 5) | Lorem Ipsum',
  46. 'object argument with page changed title');
  47. container.title.set({title: "User", parent: 'Admins'});
  48. assert.equal(document.title, 'User | Admins | Lorem Ipsum',
  49. 'object argument with parent changed title');
  50. container.title.set({title: "User", parent: 'Admins', page: 1});
  51. assert.equal(document.title, 'User | Admins | Lorem Ipsum',
  52. 'object argument with parent and first page changed title');
  53. container.title.set({title: "User", parent: 'Admins', page: 5});
  54. assert.equal(document.title, 'User (page 5) | Admins | Lorem Ipsum',
  55. 'object argument with parent and page changed title');
  56. });
  57. }());