Layers.tests.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /* global QUnit */
  2. import { Layers } from '../../../../src/core/Layers.js';
  3. export default QUnit.module( 'Core', () => {
  4. QUnit.module( 'Layers', () => {
  5. // INSTANCING
  6. QUnit.test( 'Instancing', ( assert ) => {
  7. const object = new Layers();
  8. assert.ok( object, 'Can instantiate a Layers.' );
  9. } );
  10. // PROPERTIES
  11. QUnit.todo( 'mask', ( assert ) => {
  12. assert.ok( false, 'everything\'s gonna be alright' );
  13. } );
  14. // PUBLIC
  15. QUnit.test( 'set', ( assert ) => {
  16. const a = new Layers();
  17. for ( let i = 0; i < 31; i ++ ) {
  18. a.set( i );
  19. assert.strictEqual( a.mask, Math.pow( 2, i ), 'Mask has the expected value for channel: ' + i );
  20. }
  21. } );
  22. QUnit.test( 'enable', ( assert ) => {
  23. const a = new Layers();
  24. a.set( 0 );
  25. a.enable( 0 );
  26. assert.strictEqual( a.mask, 1, 'Enable channel 0 with mask 0' );
  27. a.set( 0 );
  28. a.enable( 1 );
  29. assert.strictEqual( a.mask, 3, 'Enable channel 1 with mask 0' );
  30. a.set( 1 );
  31. a.enable( 0 );
  32. assert.strictEqual( a.mask, 3, 'Enable channel 0 with mask 1' );
  33. a.set( 1 );
  34. a.enable( 1 );
  35. assert.strictEqual( a.mask, 2, 'Enable channel 1 with mask 1' );
  36. } );
  37. QUnit.todo( 'enableAll', ( assert ) => {
  38. assert.ok( false, 'everything\'s gonna be alright' );
  39. } );
  40. QUnit.test( 'toggle', ( assert ) => {
  41. const a = new Layers();
  42. a.set( 0 );
  43. a.toggle( 0 );
  44. assert.strictEqual( a.mask, 0, 'Toggle channel 0 with mask 0' );
  45. a.set( 0 );
  46. a.toggle( 1 );
  47. assert.strictEqual( a.mask, 3, 'Toggle channel 1 with mask 0' );
  48. a.set( 1 );
  49. a.toggle( 0 );
  50. assert.strictEqual( a.mask, 3, 'Toggle channel 0 with mask 1' );
  51. a.set( 1 );
  52. a.toggle( 1 );
  53. assert.strictEqual( a.mask, 0, 'Toggle channel 1 with mask 1' );
  54. } );
  55. QUnit.test( 'disable', ( assert ) => {
  56. const a = new Layers();
  57. a.set( 0 );
  58. a.disable( 0 );
  59. assert.strictEqual( a.mask, 0, 'Disable channel 0 with mask 0' );
  60. a.set( 0 );
  61. a.disable( 1 );
  62. assert.strictEqual( a.mask, 1, 'Disable channel 1 with mask 0' );
  63. a.set( 1 );
  64. a.disable( 0 );
  65. assert.strictEqual( a.mask, 2, 'Disable channel 0 with mask 1' );
  66. a.set( 1 );
  67. a.disable( 1 );
  68. assert.strictEqual( a.mask, 0, 'Disable channel 1 with mask 1' );
  69. } );
  70. QUnit.todo( 'disableAll', ( assert ) => {
  71. assert.ok( false, 'everything\'s gonna be alright' );
  72. } );
  73. QUnit.test( 'test', ( assert ) => {
  74. const a = new Layers();
  75. const b = new Layers();
  76. assert.ok( a.test( b ), 'Start out true' );
  77. a.set( 1 );
  78. assert.notOk( a.test( b ), 'Set channel 1 in a and fail the QUnit.test' );
  79. b.toggle( 1 );
  80. assert.ok( a.test( b ), 'Toggle channel 1 in b and pass again' );
  81. } );
  82. QUnit.test( 'isEnabled', ( assert ) => {
  83. const a = new Layers();
  84. a.enable( 1 );
  85. assert.ok( a.isEnabled( 1 ), 'Enable channel 1 and pass the QUnit.test' );
  86. a.enable( 2 );
  87. assert.ok( a.isEnabled( 2 ), 'Enable channel 2 and pass the QUnit.test' );
  88. a.toggle( 1 );
  89. assert.notOk( a.isEnabled( 1 ), 'Toggle channel 1 and fail the QUnit.test' );
  90. assert.ok( a.isEnabled( 2 ), 'Channel 2 still enabled and pass the QUnit.test' );
  91. } );
  92. } );
  93. } );
粤ICP备19079148号