OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "media/base/text_ranges.h" | |
6 | |
7 #include "base/time/time.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 | |
10 namespace media { | |
11 | |
12 TEST(TextRangesTest, TestEmptyRanges) { | |
13 TextRanges r; | |
14 | |
15 // Create a new active range, with t=5. | |
16 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(5)), -1); | |
17 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(5))); | |
18 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(5)), 1); | |
acolwell GONE FROM CHROMIUM
2014/02/05 19:09:36
Please remove the Present() calls and Present() it
Matthew Heaney (Chromium)
2014/02/06 02:25:48
Done.
| |
19 | |
20 // Create a new active range, with t=2. | |
21 r.Flush(); | |
22 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), -1); | |
23 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
24 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 1); | |
25 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(5)), 0); | |
26 | |
27 // Create a new active range, with t=8. | |
28 r.Flush(); | |
29 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(8)), -1); | |
30 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(8))); | |
31 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(8)), 1); | |
32 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 0); | |
33 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(5)), 0); | |
34 | |
35 r.Flush(); | |
36 | |
37 // Make range [2, 2] active. | |
38 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
39 | |
40 // Add duplicate cue to end of active range. | |
41 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
42 | |
43 // Coalesce first two ranges: [2, 5]. | |
44 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromSeconds(5))); | |
45 | |
46 // Add duplicate cue to end of active range. | |
47 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(5))); | |
48 | |
49 // Coalesce first two ranges: [2, 8]. | |
50 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromSeconds(8))); | |
51 | |
52 // Add duplicate cue to end of active range. | |
53 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(8))); | |
54 | |
55 // Add new cue to end of (only) range. | |
56 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(9))); | |
57 } | |
58 | |
59 TEST(TextRangesTest, TestOneRange) { | |
60 TextRanges r; | |
61 | |
62 // Create a new active range, with t=0. | |
63 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), -1); | |
64 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(0))); | |
65 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 1); | |
66 | |
67 // Add cues to end of existing range. | |
68 | |
69 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 0); | |
70 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(1))); | |
71 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 1); | |
72 | |
73 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 0); | |
74 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
75 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 1); | |
76 | |
77 r.Flush(); | |
78 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), -1); | |
79 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(1500))); | |
80 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), 1); | |
81 | |
82 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1600)), 1); | |
83 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(1600))); | |
84 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1600)), 1); | |
85 | |
86 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
87 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(2000))); | |
88 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
89 | |
90 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
91 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromMilliseconds(2000))); | |
92 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
93 } | |
94 | |
95 TEST(TextRangesTest, TestTwoRanges) { | |
96 TextRanges r; | |
97 | |
98 // Create a new active range, with t=0. | |
99 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), -1); | |
100 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(0))); | |
101 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 1); | |
102 | |
103 // Add cue to end of existing range. | |
104 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 0); | |
105 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(1))); | |
106 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 1); | |
107 | |
108 r.Flush(); | |
109 | |
110 // Create a new active range, with t=2. | |
111 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), -1); | |
112 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
113 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 1); | |
114 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 0); | |
115 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 0); | |
116 | |
117 // Add a new cue to end of last (active) range. | |
118 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(3)), 0); | |
119 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(3))); | |
120 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(3)), 1); | |
121 | |
122 r.Flush(); | |
123 | |
124 // Make first range active. | |
125 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(500)), -1); | |
126 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(500))); | |
127 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(500)), 1); | |
128 | |
129 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1000)), 1); | |
130 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(1000))); | |
131 | |
132 // Expand first range. | |
133 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1100)), 0); | |
134 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromMilliseconds(1100))); | |
135 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1100)), 1); | |
136 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 0); | |
137 | |
138 // Coalesce first and second ranges. | |
139 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 0); | |
140 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(2000))); | |
141 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
142 } | |
143 | |
144 TEST(TextRangesTest, TestThreeRanges) { | |
145 TextRanges r; | |
146 | |
147 // Create a new active range, with t=0. | |
148 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), -1); | |
149 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(0))); | |
150 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 1); | |
151 | |
152 // Add cue to end of existing range. | |
153 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 0); | |
154 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(1))); | |
155 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 1); | |
156 | |
157 r.Flush(); | |
158 | |
159 // Create a new active range, with t=2. | |
160 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), -1); | |
161 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(2))); | |
162 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(2)), 1); | |
163 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 0); | |
164 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(1)), 0); | |
165 | |
166 // Add a new cue to end of last (active) range. | |
167 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(3)), 0); | |
168 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromSeconds(3))); | |
169 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(3)), 1); | |
170 | |
171 r.Flush(); | |
172 | |
173 // Create a new active range, in between the other two. | |
174 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), -1); | |
175 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromMilliseconds(1500))); | |
176 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), 1); | |
177 | |
178 // Coalesce middle and last ranges: [1500 ms, 3000 ms]. | |
179 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 0); | |
180 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(2000))); | |
181 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
182 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(0)), 0); | |
183 | |
184 r.Flush(); | |
185 | |
186 // Make first range active: [0 sec, 1 sec]. | |
187 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), -1); | |
188 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromSeconds(0))); | |
189 EXPECT_EQ(r.Present(base::TimeDelta::FromSeconds(0)), 1); | |
190 | |
191 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(500)), 1); | |
192 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(500))); | |
193 | |
194 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1000)), 1); | |
195 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(1000))); | |
196 | |
197 // Add a duplicate last time to first range. | |
198 EXPECT_TRUE(r.AddCue(base::TimeDelta::FromMilliseconds(1000))); | |
199 | |
200 // Coalesce first and last ranges: [0 sec, 3 sec]. | |
201 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(0)), 1); | |
202 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1000)), 1); | |
203 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), 0); | |
204 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 0); | |
205 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(3000)), 0); | |
206 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(3500)), 0); | |
207 EXPECT_FALSE(r.AddCue(base::TimeDelta::FromMilliseconds(1500))); | |
208 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(0)), 1); | |
209 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1000)), 1); | |
210 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(1500)), 1); | |
211 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(2000)), 1); | |
212 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(3000)), 1); | |
213 EXPECT_EQ(r.Present(base::TimeDelta::FromMilliseconds(3500)), 0); | |
214 } | |
215 | |
216 } // namespace media | |
OLD | NEW |