disjoint_range_set_test.html revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1<!DOCTYPE html> 2<html> 3<!-- 4Copyright (c) 2011 The Chromium Authors. All rights reserved. 5Use of this source code is governed by a BSD-style license that can be 6found in the LICENSE file. 7--> 8 <head> 9 <title></title> 10 <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script> 11 <script src="/ui/webui/resources/js/cr.js"></script> 12 <script src="disjoint_range_set.js"></script> 13 <script> 14 goog.require('goog.testing.jsunit'); 15 </script> 16 </head> 17 <body> 18 <script> 19 20 var range; 21 22 function assertRangeEquals(ranges) { 23 assertArrayEquals( 24 ranges, range.map(function(start, end) { return [start, end]; })); 25 }; 26 27 function setUp() { 28 range = new media.DisjointRangeSet; 29 }; 30 31 function testAdd() { 32 range.add(1, 6); 33 assertRangeEquals([[1, 6]]); 34 range.add(-5, -3); 35 assertRangeEquals([[-5, -3], [1, 6]]); 36 }; 37 38 function testAddAdjacent() { 39 range.add(3, 6); 40 assertRangeEquals([[3, 6]]); 41 range.add(1, 2); 42 assertRangeEquals([[1, 6]]); 43 range.add(7, 9); 44 assertRangeEquals([[1, 9]]); 45 }; 46 47 function testAddNotQuiteAdjacent() { 48 range.add(3, 6); 49 assertRangeEquals([[3, 6]]); 50 range.add(0, 1); 51 assertRangeEquals([[0, 1], [3, 6]]); 52 range.add(8, 9); 53 assertRangeEquals([[0, 1], [3, 6], [8, 9]]); 54 }; 55 56 function testAddOverlapping() { 57 range.add(1, 6); 58 assertRangeEquals([[1, 6]]); 59 range.add(5, 8); 60 assertRangeEquals([[1, 8]]); 61 range.add(0, 1); 62 assertRangeEquals([[0, 8]]); 63 }; 64 65 function testMax() { 66 assertNull(range.max()); 67 range.add(1, 6); 68 assertEquals(range.max(), 6); 69 range.add(3, 8); 70 assertEquals(range.max(), 8); 71 range.remove(2, 3); 72 assertEquals(range.max(), 8); 73 range.remove(4, 10); 74 assertEquals(range.max(), 1); 75 range.remove(1, 1); 76 assertNull(range.max()); 77 }; 78 79 function testRemove() { 80 range.add(1, 20); 81 assertRangeEquals([[1, 20]]); 82 range.remove(0, 3); 83 assertRangeEquals([[4, 20]]); 84 range.remove(18, 20); 85 assertRangeEquals([[4, 17]]); 86 range.remove(5, 16); 87 assertRangeEquals([[4, 4], [17, 17]]); 88 }; 89 90 function testStartsEmpty() { 91 assertRangeEquals([]); 92 }; 93 94 </script> 95 </body> 96</html> 97