page.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. 'use strict';
  2. const assert = require( 'assert' ),
  3. DeletePage = require( '../pageobjects/delete.page' ),
  4. RestorePage = require( '../pageobjects/restore.page' ),
  5. EditPage = require( '../pageobjects/edit.page' ),
  6. HistoryPage = require( '../pageobjects/history.page' ),
  7. UserLoginPage = require( '../pageobjects/userlogin.page' );
  8. describe( 'Page', function () {
  9. var content,
  10. name;
  11. function getTestString() {
  12. return Math.random().toString() + '-öäü-♠♣♥♦';
  13. }
  14. before( function () {
  15. // disable VisualEditor welcome dialog
  16. UserLoginPage.open();
  17. browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
  18. } );
  19. beforeEach( function () {
  20. browser.deleteCookie();
  21. content = getTestString();
  22. name = getTestString();
  23. } );
  24. it( 'should be creatable', function () {
  25. // create
  26. EditPage.edit( name, content );
  27. // check
  28. assert.equal( EditPage.heading.getText(), name );
  29. assert.equal( EditPage.displayedContent.getText(), content );
  30. } );
  31. it( 'should be re-creatable', function () {
  32. let initialContent = getTestString();
  33. // create
  34. browser.call( function () {
  35. return EditPage.apiEdit( name, initialContent );
  36. } );
  37. // delete
  38. browser.call( function () {
  39. return DeletePage.apiDelete( name, 'delete prior to recreate' );
  40. } );
  41. // create
  42. EditPage.edit( name, content );
  43. // check
  44. assert.equal( EditPage.heading.getText(), name );
  45. assert.equal( EditPage.displayedContent.getText(), content );
  46. } );
  47. it( 'should be editable', function () {
  48. // create
  49. browser.call( function () {
  50. return EditPage.apiEdit( name, content );
  51. } );
  52. // edit
  53. EditPage.edit( name, content );
  54. // check
  55. assert.equal( EditPage.heading.getText(), name );
  56. assert.equal( EditPage.displayedContent.getText(), content );
  57. } );
  58. it( 'should have history', function () {
  59. // create
  60. browser.call( function () {
  61. return EditPage.apiEdit( name, content );
  62. } );
  63. // check
  64. HistoryPage.open( name );
  65. assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` );
  66. } );
  67. it( 'should be deletable', function () {
  68. // login
  69. UserLoginPage.loginAdmin();
  70. // create
  71. browser.call( function () {
  72. return EditPage.apiEdit( name, content );
  73. } );
  74. // delete
  75. DeletePage.delete( name, content + '-deletereason' );
  76. // check
  77. assert.equal(
  78. DeletePage.displayedContent.getText(),
  79. '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
  80. );
  81. } );
  82. it( 'should be restorable', function () {
  83. // login
  84. UserLoginPage.loginAdmin();
  85. // create
  86. browser.call( function () {
  87. return EditPage.apiEdit( name, content );
  88. } );
  89. // delete
  90. browser.call( function () {
  91. return DeletePage.apiDelete( name, content + '-deletereason' );
  92. } );
  93. // restore
  94. RestorePage.restore( name, content + '-restorereason' );
  95. // check
  96. assert.equal( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
  97. } );
  98. } );