range.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* bender-tags: document */
  6. 'use strict';
  7. var modules = bender.amd.require(
  8. 'document/range',
  9. 'document/element',
  10. 'document/position' );
  11. describe( 'range', function() {
  12. it( 'should create a range with given positions', function() {
  13. var Element = modules[ 'document/element' ];
  14. var Position = modules[ 'document/position' ];
  15. var Range = modules[ 'document/range' ];
  16. var elem = new Element();
  17. var start = new Position( elem, 0 );
  18. var end = new Position( elem, 0 );
  19. var range = new Range( start, end );
  20. expect( range ).to.have.property( 'start' ).that.equal( start );
  21. expect( range ).to.have.property( 'end' ).that.equal( end );
  22. } );
  23. it( 'should be equals same range', function() {
  24. var Element = modules[ 'document/element' ];
  25. var Position = modules[ 'document/position' ];
  26. var Range = modules[ 'document/range' ];
  27. var elem = new Element();
  28. var start = new Position( elem, 0 );
  29. var end = new Position( elem, 0 );
  30. var range = new Range( start, end );
  31. var sameStart = new Position( elem, 0 );
  32. var sameEnd = new Position( elem, 0 );
  33. var sameRange = new Range( sameStart, sameEnd );
  34. expect( range.equals( sameRange ) ).to.be.true;
  35. } );
  36. it( 'should not be equals if the start position is different', function() {
  37. var Element = modules[ 'document/element' ];
  38. var Position = modules[ 'document/position' ];
  39. var Range = modules[ 'document/range' ];
  40. var elem = new Element();
  41. var childElem = new Element( elem );
  42. elem.children.push( childElem );
  43. var start = new Position( elem, 0 );
  44. var end = new Position( elem, 1 );
  45. var range = new Range( start, end );
  46. var sameStart = new Position( elem, 1 );
  47. var sameEnd = new Position( elem, 1 );
  48. var sameRange = new Range( sameStart, sameEnd );
  49. expect( range.equals( sameRange ) ).to.not.be.true;
  50. } );
  51. it( 'should not be equals if the end position is different', function() {
  52. var Element = modules[ 'document/element' ];
  53. var Position = modules[ 'document/position' ];
  54. var Range = modules[ 'document/range' ];
  55. var elem = new Element();
  56. var childElem = new Element( elem );
  57. elem.children.push( childElem );
  58. var start = new Position( elem, 0 );
  59. var end = new Position( elem, 1 );
  60. var range = new Range( start, end );
  61. var sameStart = new Position( elem, 0 );
  62. var sameEnd = new Position( elem, 0 );
  63. var sameRange = new Range( sameStart, sameEnd );
  64. expect( range.equals( sameRange ) ).to.not.be.true;
  65. } );
  66. } );