passwordRenderer.spec.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. describe('passwordRenderer', () => {
  2. var id = 'testContainer';
  3. beforeEach(function() {
  4. this.$container = $(`<div id="${id}"></div>`).appendTo('body');
  5. });
  6. afterEach(function() {
  7. if (this.$container) {
  8. destroy();
  9. this.$container.remove();
  10. }
  11. });
  12. it('should render strings as a sequence of asterisks', () => {
  13. handsontable({
  14. data: [
  15. ['Joe'],
  16. ['Timothy'],
  17. ['Margaret'],
  18. ['Jerry']
  19. ],
  20. columns: [
  21. {
  22. renderer: Handsontable.renderers.PasswordRenderer
  23. }
  24. ]
  25. });
  26. expect(getRenderedValue(0, 0)).toMatch(/^[*]+$/ig);
  27. expect(getRenderedValue(1, 0)).toMatch(/^[*]+$/ig);
  28. expect(getRenderedValue(2, 0)).toMatch(/^[*]+$/ig);
  29. expect(getRenderedValue(3, 0)).toMatch(/^[*]+$/ig);
  30. });
  31. it('should render numbers as a sequence of asterisks ', () => {
  32. handsontable({
  33. data: [
  34. [1],
  35. [1234],
  36. [9090],
  37. [0]
  38. ],
  39. columns: [
  40. {
  41. renderer: Handsontable.renderers.PasswordRenderer
  42. }
  43. ]
  44. });
  45. expect(getRenderedValue(0, 0)).toMatch(/^[*]+$/ig);
  46. expect(getRenderedValue(1, 0)).toMatch(/^[*]+$/ig);
  47. expect(getRenderedValue(2, 0)).toMatch(/^[*]+$/ig);
  48. expect(getRenderedValue(3, 0)).toMatch(/^[*]+$/ig);
  49. });
  50. it('should be possible to set passwordRenderer with column \'type\' parameter', () => {
  51. handsontable({
  52. data: [
  53. ['Joe'],
  54. ['Timothy'],
  55. ['Margaret'],
  56. ['Jerry']
  57. ],
  58. columns: [
  59. {
  60. type: 'password'
  61. }
  62. ]
  63. });
  64. expect(getRenderedValue(0, 0)).toMatch(/^[*]+$/ig);
  65. expect(getRenderedValue(1, 0)).toMatch(/^[*]+$/ig);
  66. expect(getRenderedValue(2, 0)).toMatch(/^[*]+$/ig);
  67. expect(getRenderedValue(3, 0)).toMatch(/^[*]+$/ig);
  68. });
  69. it('should be possible to set passwordRenderer using alias \'password\'', () => {
  70. handsontable({
  71. data: [
  72. ['Joe'],
  73. ['Timothy'],
  74. ['Margaret'],
  75. ['Jerry']
  76. ],
  77. columns: [
  78. {
  79. renderer: 'password'
  80. }
  81. ]
  82. });
  83. expect(getRenderedValue(0, 0)).toMatch(/^[*]+$/ig);
  84. expect(getRenderedValue(1, 0)).toMatch(/^[*]+$/ig);
  85. expect(getRenderedValue(2, 0)).toMatch(/^[*]+$/ig);
  86. expect(getRenderedValue(3, 0)).toMatch(/^[*]+$/ig);
  87. });
  88. it('should render strings as a sequence of asterisks, of width matching the original value width', () => {
  89. handsontable({
  90. data: [
  91. ['Joe'],
  92. ['Timothy'],
  93. ['Margaret'],
  94. ['Jerry']
  95. ],
  96. columns: [
  97. {
  98. renderer: Handsontable.renderers.PasswordRenderer
  99. }
  100. ]
  101. });
  102. expect(getRenderedValue(0, 0).length).toEqual(getDataAtCell(0, 0).length);
  103. expect(getRenderedValue(1, 0).length).toEqual(getDataAtCell(1, 0).length);
  104. expect(getRenderedValue(2, 0).length).toEqual(getDataAtCell(2, 0).length);
  105. expect(getRenderedValue(3, 0).length).toEqual(getDataAtCell(3, 0).length);
  106. });
  107. it('should render strings as a sequence of asterisks, of fixed width', () => {
  108. handsontable({
  109. data: [
  110. ['Joe'],
  111. ['Timothy'],
  112. ['Margaret'],
  113. ['Jerry']
  114. ],
  115. columns: [
  116. {
  117. renderer: Handsontable.renderers.PasswordRenderer,
  118. hashLength: 10
  119. }
  120. ]
  121. });
  122. expect(getRenderedValue(0, 0).length).toEqual(10);
  123. expect(getRenderedValue(1, 0).length).toEqual(10);
  124. expect(getRenderedValue(2, 0).length).toEqual(10);
  125. expect(getRenderedValue(3, 0).length).toEqual(10);
  126. });
  127. it('should render strings as a sequence of custom symbols', () => {
  128. handsontable({
  129. data: [
  130. [1, 'Joe'],
  131. [2, 'Timothy'],
  132. [3, 'Margaret'],
  133. [4, 'Jerry']
  134. ],
  135. columns: [
  136. {
  137. renderer: Handsontable.renderers.PasswordRenderer,
  138. hashSymbol: '#'
  139. },
  140. {
  141. renderer: Handsontable.renderers.PasswordRenderer,
  142. hashSymbol: 'x'
  143. }
  144. ]
  145. });
  146. expect(getRenderedValue(0, 0)).toMatch(/^[#]+$/ig);
  147. expect(getRenderedValue(1, 0)).toMatch(/^[#]+$/ig);
  148. expect(getRenderedValue(2, 0)).toMatch(/^[#]+$/ig);
  149. expect(getRenderedValue(3, 0)).toMatch(/^[#]+$/ig);
  150. expect(getRenderedValue(0, 1)).toMatch(/^[x]+$/ig);
  151. expect(getRenderedValue(1, 1)).toMatch(/^[x]+$/ig);
  152. expect(getRenderedValue(2, 1)).toMatch(/^[x]+$/ig);
  153. expect(getRenderedValue(3, 1)).toMatch(/^[x]+$/ig);
  154. });
  155. });