Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: third_party/WebKit/Source/core/page/EventSourceTest.cpp

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/page/EventSource.h" 5 #include "core/page/EventSource.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "bindings/core/v8/ScriptValue.h" 9 #include "bindings/core/v8/ScriptValue.h"
10 #include "bindings/core/v8/SerializedScriptValue.h" 10 #include "bindings/core/v8/SerializedScriptValue.h"
(...skipping 21 matching lines...) Expand all
32 ASSERT(MessageEvent::DataTypeSerializedScriptValue == event->dataType()); 32 ASSERT(MessageEvent::DataTypeSerializedScriptValue == event->dataType());
33 if (!event->dataAsSerializedScriptValue()) 33 if (!event->dataAsSerializedScriptValue())
34 return String(); 34 return String();
35 MessagePortArray ports = event->ports(); 35 MessagePortArray ports = event->ports();
36 NonThrowableExceptionState es; 36 NonThrowableExceptionState es;
37 return toUSVString(isolate, event->dataAsSerializedScriptValue()->deserializ e(isolate, &ports), es); 37 return toUSVString(isolate, event->dataAsSerializedScriptValue()->deserializ e(isolate, &ports), es);
38 } 38 }
39 39
40 class FakeEventListener : public EventListener { 40 class FakeEventListener : public EventListener {
41 public: 41 public:
42 static PassRefPtrWillBeRawPtr<FakeEventListener> create() 42 static RawPtr<FakeEventListener> create()
43 { 43 {
44 return adoptRefWillBeNoop(new FakeEventListener()); 44 return (new FakeEventListener());
45 } 45 }
46 bool operator==(const EventListener& x) const override { return &x == this; } 46 bool operator==(const EventListener& x) const override { return &x == this; }
47 const WillBeHeapVector<RefPtrWillBeMember<Event>>& events() { return m_event s; } 47 const HeapVector<Member<Event>>& events() { return m_events; }
48 void handleEvent(ExecutionContext* executionContext, Event* event) 48 void handleEvent(ExecutionContext* executionContext, Event* event)
49 { 49 {
50 m_events.append(event); 50 m_events.append(event);
51 } 51 }
52 DEFINE_INLINE_TRACE() 52 DEFINE_INLINE_TRACE()
53 { 53 {
54 visitor->trace(m_events); 54 visitor->trace(m_events);
55 EventListener::trace(visitor); 55 EventListener::trace(visitor);
56 } 56 }
57 57
58 protected: 58 protected:
59 FakeEventListener() : EventListener(EventListener::CPPEventListenerType) {} 59 FakeEventListener() : EventListener(EventListener::CPPEventListenerType) {}
60 WillBeHeapVector<RefPtrWillBeMember<Event>> m_events; 60 HeapVector<Member<Event>> m_events;
61 }; 61 };
62 62
63 class EventSourceTest : public ::testing::Test { 63 class EventSourceTest : public ::testing::Test {
64 protected: 64 protected:
65 EventSourceTest() 65 EventSourceTest()
66 : m_page(DummyPageHolder::create()) 66 : m_page(DummyPageHolder::create())
67 , m_source(EventSource::create(&document(), "https://localhost/", EventS ourceInit(), m_exceptionState)) 67 , m_source(EventSource::create(&document(), "https://localhost/", EventS ourceInit(), m_exceptionState))
68 { 68 {
69 source()->setStateForTest(EventSource::OPEN); 69 source()->setStateForTest(EventSource::OPEN);
70 source()->setRequestInFlightForTest(true); 70 source()->setRequestInFlightForTest(true);
(...skipping 24 matching lines...) Expand all
95 ThreadableLoaderClient* client() { return m_source->asThreadableLoaderClient ForTest(); } 95 ThreadableLoaderClient* client() { return m_source->asThreadableLoaderClient ForTest(); }
96 96
97 private: 97 private:
98 OwnPtr<DummyPageHolder> m_page; 98 OwnPtr<DummyPageHolder> m_page;
99 NonThrowableExceptionState m_exceptionState; 99 NonThrowableExceptionState m_exceptionState;
100 Persistent<EventSource> m_source; 100 Persistent<EventSource> m_source;
101 }; 101 };
102 102
103 TEST_F(EventSourceTest, EmptyMessageEventShouldNotBeDispatched) 103 TEST_F(EventSourceTest, EmptyMessageEventShouldNotBeDispatched)
104 { 104 {
105 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 105 RawPtr<FakeEventListener> listener = FakeEventListener::create();
106 106
107 source()->addEventListener("message", listener); 107 source()->addEventListener("message", listener);
108 enqueue("\n"); 108 enqueue("\n");
109 109
110 EXPECT_EQ(0u, listener->events().size()); 110 EXPECT_EQ(0u, listener->events().size());
111 } 111 }
112 112
113 TEST_F(EventSourceTest, DispatchSimpleMessageEvent) 113 TEST_F(EventSourceTest, DispatchSimpleMessageEvent)
114 { 114 {
115 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 115 RawPtr<FakeEventListener> listener = FakeEventListener::create();
116 116
117 source()->addEventListener("message", listener); 117 source()->addEventListener("message", listener);
118 enqueue("data:hello\n\n"); 118 enqueue("data:hello\n\n");
119 119
120 ASSERT_EQ(1u, listener->events().size()); 120 ASSERT_EQ(1u, listener->events().size());
121 ASSERT_EQ("message", listener->events()[0]->type()); 121 ASSERT_EQ("message", listener->events()[0]->type());
122 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 122 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
123 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 123 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
124 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 124 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
125 EXPECT_EQ(String(), event->lastEventId()); 125 EXPECT_EQ(String(), event->lastEventId());
126 } 126 }
127 127
128 TEST_F(EventSourceTest, DispatchMessageEventWithLastEventId) 128 TEST_F(EventSourceTest, DispatchMessageEventWithLastEventId)
129 { 129 {
130 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 130 RawPtr<FakeEventListener> listener = FakeEventListener::create();
131 131
132 source()->addEventListener("message", listener); 132 source()->addEventListener("message", listener);
133 enqueue("id:99\ndata:hello\n\n"); 133 enqueue("id:99\ndata:hello\n\n");
134 134
135 ASSERT_EQ(1u, listener->events().size()); 135 ASSERT_EQ(1u, listener->events().size());
136 ASSERT_EQ("message", listener->events()[0]->type()); 136 ASSERT_EQ("message", listener->events()[0]->type());
137 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 137 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
138 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 138 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
139 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 139 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
140 EXPECT_EQ("99", event->lastEventId()); 140 EXPECT_EQ("99", event->lastEventId());
141 } 141 }
142 142
143 TEST_F(EventSourceTest, DispatchMessageEventWithCustomEventType) 143 TEST_F(EventSourceTest, DispatchMessageEventWithCustomEventType)
144 { 144 {
145 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 145 RawPtr<FakeEventListener> listener = FakeEventListener::create();
146 146
147 source()->addEventListener("foo", listener); 147 source()->addEventListener("foo", listener);
148 enqueue("event:foo\ndata:hello\n\n"); 148 enqueue("event:foo\ndata:hello\n\n");
149 149
150 ASSERT_EQ(1u, listener->events().size()); 150 ASSERT_EQ(1u, listener->events().size());
151 ASSERT_EQ("foo", listener->events()[0]->type()); 151 ASSERT_EQ("foo", listener->events()[0]->type());
152 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 152 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
153 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 153 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
154 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 154 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
155 } 155 }
156 156
157 TEST_F(EventSourceTest, RetryTakesEffectEvenWhenNotDispatching) 157 TEST_F(EventSourceTest, RetryTakesEffectEvenWhenNotDispatching)
158 { 158 {
159 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 159 RawPtr<FakeEventListener> listener = FakeEventListener::create();
160 160
161 source()->addEventListener("message", listener); 161 source()->addEventListener("message", listener);
162 ASSERT_NE(999u, EventSource::defaultReconnectDelay); 162 ASSERT_NE(999u, EventSource::defaultReconnectDelay);
163 163
164 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 164 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
165 enqueue("retry:999\n"); 165 enqueue("retry:999\n");
166 EXPECT_EQ(999u, source()->reconnectDelayForTest()); 166 EXPECT_EQ(999u, source()->reconnectDelayForTest());
167 EXPECT_EQ(0u, listener->events().size()); 167 EXPECT_EQ(0u, listener->events().size());
168 } 168 }
169 169
170 TEST_F(EventSourceTest, EventTypeShouldBeReset) 170 TEST_F(EventSourceTest, EventTypeShouldBeReset)
171 { 171 {
172 RefPtrWillBeRawPtr<FakeEventListener> fooListener = FakeEventListener::creat e(); 172 RawPtr<FakeEventListener> fooListener = FakeEventListener::create();
173 RefPtrWillBeRawPtr<FakeEventListener> messageListener = FakeEventListener::c reate(); 173 RawPtr<FakeEventListener> messageListener = FakeEventListener::create();
174 174
175 source()->addEventListener("foo", fooListener); 175 source()->addEventListener("foo", fooListener);
176 source()->addEventListener("message", messageListener); 176 source()->addEventListener("message", messageListener);
177 enqueue("event:foo\ndata:hello\n\ndata:bye\n\n"); 177 enqueue("event:foo\ndata:hello\n\ndata:bye\n\n");
178 178
179 ASSERT_EQ(1u, fooListener->events().size()); 179 ASSERT_EQ(1u, fooListener->events().size());
180 ASSERT_EQ("foo", fooListener->events()[0]->type()); 180 ASSERT_EQ("foo", fooListener->events()[0]->type());
181 RefPtrWillBeRawPtr<MessageEvent> fooEvent = static_cast<MessageEvent*>(fooLi stener->events()[0].get()); 181 RawPtr<MessageEvent> fooEvent = static_cast<MessageEvent*>(fooListener->even ts()[0].get());
182 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, fooEvent->dataType()) ; 182 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, fooEvent->dataType()) ;
183 EXPECT_EQ("hello", dataAsString(scriptState(), fooEvent.get())); 183 EXPECT_EQ("hello", dataAsString(scriptState(), fooEvent.get()));
184 184
185 ASSERT_EQ(1u, messageListener->events().size()); 185 ASSERT_EQ(1u, messageListener->events().size());
186 ASSERT_EQ("message", messageListener->events()[0]->type()); 186 ASSERT_EQ("message", messageListener->events()[0]->type());
187 RefPtrWillBeRawPtr<MessageEvent> messageEvent = static_cast<MessageEvent*>(m essageListener->events()[0].get()); 187 RawPtr<MessageEvent> messageEvent = static_cast<MessageEvent*>(messageListen er->events()[0].get());
188 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, messageEvent->dataTyp e()); 188 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, messageEvent->dataTyp e());
189 EXPECT_EQ("bye", dataAsString(scriptState(), messageEvent.get())); 189 EXPECT_EQ("bye", dataAsString(scriptState(), messageEvent.get()));
190 } 190 }
191 191
192 TEST_F(EventSourceTest, DataShouldBeReset) 192 TEST_F(EventSourceTest, DataShouldBeReset)
193 { 193 {
194 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 194 RawPtr<FakeEventListener> listener = FakeEventListener::create();
195 195
196 source()->addEventListener("message", listener); 196 source()->addEventListener("message", listener);
197 enqueue("data:hello\n\n\n"); 197 enqueue("data:hello\n\n\n");
198 198
199 ASSERT_EQ(1u, listener->events().size()); 199 ASSERT_EQ(1u, listener->events().size());
200 ASSERT_EQ("message", listener->events()[0]->type()); 200 ASSERT_EQ("message", listener->events()[0]->type());
201 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 201 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
202 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 202 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
203 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 203 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
204 } 204 }
205 205
206 TEST_F(EventSourceTest, LastEventIdShouldNotBeReset) 206 TEST_F(EventSourceTest, LastEventIdShouldNotBeReset)
207 { 207 {
208 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 208 RawPtr<FakeEventListener> listener = FakeEventListener::create();
209 209
210 source()->addEventListener("message", listener); 210 source()->addEventListener("message", listener);
211 enqueue("id:99\ndata:hello\n\ndata:bye\n\n"); 211 enqueue("id:99\ndata:hello\n\ndata:bye\n\n");
212 212
213 ASSERT_EQ(2u, listener->events().size()); 213 ASSERT_EQ(2u, listener->events().size());
214 214
215 ASSERT_EQ("message", listener->events()[0]->type()); 215 ASSERT_EQ("message", listener->events()[0]->type());
216 RefPtrWillBeRawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listene r->events()[0].get()); 216 RawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listener->events()[ 0].get());
217 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType()); 217 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType());
218 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get())); 218 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get()));
219 EXPECT_EQ("99", event0->lastEventId()); 219 EXPECT_EQ("99", event0->lastEventId());
220 220
221 ASSERT_EQ("message", listener->events()[1]->type()); 221 ASSERT_EQ("message", listener->events()[1]->type());
222 RefPtrWillBeRawPtr<MessageEvent> event1 = static_cast<MessageEvent*>(listene r->events()[1].get()); 222 RawPtr<MessageEvent> event1 = static_cast<MessageEvent*>(listener->events()[ 1].get());
223 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event1->dataType()); 223 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event1->dataType());
224 EXPECT_EQ("bye", dataAsString(scriptState(), event1.get())); 224 EXPECT_EQ("bye", dataAsString(scriptState(), event1.get()));
225 EXPECT_EQ("99", event1->lastEventId()); 225 EXPECT_EQ("99", event1->lastEventId());
226 } 226 }
227 227
228 TEST_F(EventSourceTest, VariousNewLinesShouldBeAllowed) 228 TEST_F(EventSourceTest, VariousNewLinesShouldBeAllowed)
229 { 229 {
230 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 230 RawPtr<FakeEventListener> listener = FakeEventListener::create();
231 231
232 source()->addEventListener("message", listener); 232 source()->addEventListener("message", listener);
233 enqueueOneByOne("data:hello\r\n\rdata:bye\r\r"); 233 enqueueOneByOne("data:hello\r\n\rdata:bye\r\r");
234 234
235 ASSERT_EQ(2u, listener->events().size()); 235 ASSERT_EQ(2u, listener->events().size());
236 236
237 ASSERT_EQ("message", listener->events()[0]->type()); 237 ASSERT_EQ("message", listener->events()[0]->type());
238 RefPtrWillBeRawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listene r->events()[0].get()); 238 RawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listener->events()[ 0].get());
239 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType()); 239 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType());
240 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get())); 240 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get()));
241 241
242 ASSERT_EQ("message", listener->events()[1]->type()); 242 ASSERT_EQ("message", listener->events()[1]->type());
243 RefPtrWillBeRawPtr<MessageEvent> event1 = static_cast<MessageEvent*>(listene r->events()[1].get()); 243 RawPtr<MessageEvent> event1 = static_cast<MessageEvent*>(listener->events()[ 1].get());
244 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event1->dataType()); 244 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event1->dataType());
245 EXPECT_EQ("bye", dataAsString(scriptState(), event1.get())); 245 EXPECT_EQ("bye", dataAsString(scriptState(), event1.get()));
246 } 246 }
247 247
248 TEST_F(EventSourceTest, RetryWithEmptyValueShouldRestoreDefaultValue) 248 TEST_F(EventSourceTest, RetryWithEmptyValueShouldRestoreDefaultValue)
249 { 249 {
250 // TODO(yhirano): This is unspecified in the spec. We need to update 250 // TODO(yhirano): This is unspecified in the spec. We need to update
251 // the implementation or the spec. 251 // the implementation or the spec.
252 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 252 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
253 enqueue("retry: 12\n"); 253 enqueue("retry: 12\n");
254 EXPECT_NE(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 254 EXPECT_NE(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
255 enqueue("retry\n"); 255 enqueue("retry\n");
256 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 256 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
257 } 257 }
258 258
259 TEST_F(EventSourceTest, NonDigitRetryShouldBeIgnored) 259 TEST_F(EventSourceTest, NonDigitRetryShouldBeIgnored)
260 { 260 {
261 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 261 RawPtr<FakeEventListener> listener = FakeEventListener::create();
262 262
263 source()->addEventListener("message", listener); 263 source()->addEventListener("message", listener);
264 264
265 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 265 EXPECT_EQ(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
266 enqueue("retry:123\n"); 266 enqueue("retry:123\n");
267 EXPECT_NE(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t()); 267 EXPECT_NE(EventSource::defaultReconnectDelay, source()->reconnectDelayForTes t());
268 EXPECT_EQ(123u, source()->reconnectDelayForTest()); 268 EXPECT_EQ(123u, source()->reconnectDelayForTest());
269 269
270 enqueue("retry:a0\n"); 270 enqueue("retry:a0\n");
271 EXPECT_EQ(123u, source()->reconnectDelayForTest()); 271 EXPECT_EQ(123u, source()->reconnectDelayForTest());
(...skipping 13 matching lines...) Expand all
285 EXPECT_EQ(123u, source()->reconnectDelayForTest()); 285 EXPECT_EQ(123u, source()->reconnectDelayForTest());
286 286
287 enqueue("retry:456 \n"); 287 enqueue("retry:456 \n");
288 EXPECT_EQ(123u, source()->reconnectDelayForTest()); 288 EXPECT_EQ(123u, source()->reconnectDelayForTest());
289 289
290 EXPECT_EQ(0u, listener->events().size()); 290 EXPECT_EQ(0u, listener->events().size());
291 } 291 }
292 292
293 TEST_F(EventSourceTest, UnrecognizedFieldShouldBeIgnored) 293 TEST_F(EventSourceTest, UnrecognizedFieldShouldBeIgnored)
294 { 294 {
295 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 295 RawPtr<FakeEventListener> listener = FakeEventListener::create();
296 296
297 source()->addEventListener("message", listener); 297 source()->addEventListener("message", listener);
298 enqueue("data:hello\nhoge:fuga\npiyo\n\n"); 298 enqueue("data:hello\nhoge:fuga\npiyo\n\n");
299 299
300 ASSERT_EQ(1u, listener->events().size()); 300 ASSERT_EQ(1u, listener->events().size());
301 ASSERT_EQ("message", listener->events()[0]->type()); 301 ASSERT_EQ("message", listener->events()[0]->type());
302 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 302 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
303 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 303 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
304 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 304 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
305 } 305 }
306 306
307 TEST_F(EventSourceTest, CommentShouldBeIgnored) 307 TEST_F(EventSourceTest, CommentShouldBeIgnored)
308 { 308 {
309 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 309 RawPtr<FakeEventListener> listener = FakeEventListener::create();
310 310
311 source()->addEventListener("message", listener); 311 source()->addEventListener("message", listener);
312 enqueue("data:hello\n:event:a\n\n"); 312 enqueue("data:hello\n:event:a\n\n");
313 313
314 ASSERT_EQ(1u, listener->events().size()); 314 ASSERT_EQ(1u, listener->events().size());
315 315
316 ASSERT_EQ("message", listener->events()[0]->type()); 316 ASSERT_EQ("message", listener->events()[0]->type());
317 RefPtrWillBeRawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listene r->events()[0].get()); 317 RawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listener->events()[ 0].get());
318 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType()); 318 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType());
319 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get())); 319 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get()));
320 } 320 }
321 321
322 TEST_F(EventSourceTest, BOMShouldBeIgnored) 322 TEST_F(EventSourceTest, BOMShouldBeIgnored)
323 { 323 {
324 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 324 RawPtr<FakeEventListener> listener = FakeEventListener::create();
325 325
326 source()->addEventListener("message", listener); 326 source()->addEventListener("message", listener);
327 enqueue("\xef\xbb\xbf" "data:hello\n\n"); 327 enqueue("\xef\xbb\xbf" "data:hello\n\n");
328 328
329 ASSERT_EQ(1u, listener->events().size()); 329 ASSERT_EQ(1u, listener->events().size());
330 330
331 ASSERT_EQ("message", listener->events()[0]->type()); 331 ASSERT_EQ("message", listener->events()[0]->type());
332 RefPtrWillBeRawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listene r->events()[0].get()); 332 RawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listener->events()[ 0].get());
333 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType()); 333 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType());
334 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get())); 334 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get()));
335 } 335 }
336 336
337 TEST_F(EventSourceTest, ColonlessLineShouldBeTreatedAsNameOnlyField) 337 TEST_F(EventSourceTest, ColonlessLineShouldBeTreatedAsNameOnlyField)
338 { 338 {
339 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 339 RawPtr<FakeEventListener> listener = FakeEventListener::create();
340 340
341 source()->addEventListener("message", listener); 341 source()->addEventListener("message", listener);
342 enqueue("data:hello\nevent:a\nevent\n\n"); 342 enqueue("data:hello\nevent:a\nevent\n\n");
343 343
344 ASSERT_EQ(1u, listener->events().size()); 344 ASSERT_EQ(1u, listener->events().size());
345 345
346 ASSERT_EQ("message", listener->events()[0]->type()); 346 ASSERT_EQ("message", listener->events()[0]->type());
347 RefPtrWillBeRawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listene r->events()[0].get()); 347 RawPtr<MessageEvent> event0 = static_cast<MessageEvent*>(listener->events()[ 0].get());
348 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType()); 348 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event0->dataType());
349 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get())); 349 EXPECT_EQ("hello", dataAsString(scriptState(), event0.get()));
350 } 350 }
351 351
352 TEST_F(EventSourceTest, AtMostOneLeadingSpaceCanBeSkipped) 352 TEST_F(EventSourceTest, AtMostOneLeadingSpaceCanBeSkipped)
353 { 353 {
354 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 354 RawPtr<FakeEventListener> listener = FakeEventListener::create();
355 355
356 source()->addEventListener(" type ", listener); 356 source()->addEventListener(" type ", listener);
357 enqueue("data: hello \nevent: type \n\n"); 357 enqueue("data: hello \nevent: type \n\n");
358 358
359 ASSERT_EQ(1u, listener->events().size()); 359 ASSERT_EQ(1u, listener->events().size());
360 ASSERT_EQ(" type ", listener->events()[0]->type()); 360 ASSERT_EQ(" type ", listener->events()[0]->type());
361 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 361 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
362 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 362 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
363 EXPECT_EQ(" hello ", dataAsString(scriptState(), event.get())); 363 EXPECT_EQ(" hello ", dataAsString(scriptState(), event.get()));
364 } 364 }
365 365
366 TEST_F(EventSourceTest, DataShouldAccumulate) 366 TEST_F(EventSourceTest, DataShouldAccumulate)
367 { 367 {
368 RefPtrWillBeRawPtr<FakeEventListener> listener = FakeEventListener::create() ; 368 RawPtr<FakeEventListener> listener = FakeEventListener::create();
369 369
370 source()->addEventListener("message", listener); 370 source()->addEventListener("message", listener);
371 enqueue("data:hello\ndata: world\ndata\n\n"); 371 enqueue("data:hello\ndata: world\ndata\n\n");
372 372
373 ASSERT_EQ(1u, listener->events().size()); 373 ASSERT_EQ(1u, listener->events().size());
374 ASSERT_EQ("message", listener->events()[0]->type()); 374 ASSERT_EQ("message", listener->events()[0]->type());
375 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener ->events()[0].get()); 375 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(listener->events()[0 ].get());
376 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 376 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
377 EXPECT_EQ("hello\nworld\n", dataAsString(scriptState(), event.get())); 377 EXPECT_EQ("hello\nworld\n", dataAsString(scriptState(), event.get()));
378 } 378 }
379 379
380 TEST_F(EventSourceTest, EventShouldNotAccumulate) 380 TEST_F(EventSourceTest, EventShouldNotAccumulate)
381 { 381 {
382 RefPtrWillBeRawPtr<FakeEventListener> aListener = FakeEventListener::create( ); 382 RawPtr<FakeEventListener> aListener = FakeEventListener::create();
383 RefPtrWillBeRawPtr<FakeEventListener> bListener = FakeEventListener::create( ); 383 RawPtr<FakeEventListener> bListener = FakeEventListener::create();
384 384
385 source()->addEventListener("a", aListener); 385 source()->addEventListener("a", aListener);
386 source()->addEventListener("b", bListener); 386 source()->addEventListener("b", bListener);
387 enqueue("data:hello\nevent:a\nevent:b\n\n"); 387 enqueue("data:hello\nevent:a\nevent:b\n\n");
388 388
389 ASSERT_EQ(0u, aListener->events().size()); 389 ASSERT_EQ(0u, aListener->events().size());
390 ASSERT_EQ(1u, bListener->events().size()); 390 ASSERT_EQ(1u, bListener->events().size());
391 ASSERT_EQ("b", bListener->events()[0]->type()); 391 ASSERT_EQ("b", bListener->events()[0]->type());
392 RefPtrWillBeRawPtr<MessageEvent> event = static_cast<MessageEvent*>(bListene r->events()[0].get()); 392 RawPtr<MessageEvent> event = static_cast<MessageEvent*>(bListener->events()[ 0].get());
393 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType()); 393 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, event->dataType());
394 EXPECT_EQ("hello", dataAsString(scriptState(), event.get())); 394 EXPECT_EQ("hello", dataAsString(scriptState(), event.get()));
395 } 395 }
396 396
397 TEST_F(EventSourceTest, FeedDataOneByOne) 397 TEST_F(EventSourceTest, FeedDataOneByOne)
398 { 398 {
399 RefPtrWillBeRawPtr<FakeEventListener> aListener = FakeEventListener::create( ); 399 RawPtr<FakeEventListener> aListener = FakeEventListener::create();
400 RefPtrWillBeRawPtr<FakeEventListener> bListener = FakeEventListener::create( ); 400 RawPtr<FakeEventListener> bListener = FakeEventListener::create();
401 RefPtrWillBeRawPtr<FakeEventListener> messageListener = FakeEventListener::c reate(); 401 RawPtr<FakeEventListener> messageListener = FakeEventListener::create();
402 402
403 source()->addEventListener("a", aListener); 403 source()->addEventListener("a", aListener);
404 source()->addEventListener("b", bListener); 404 source()->addEventListener("b", bListener);
405 source()->addEventListener("message", messageListener); 405 source()->addEventListener("message", messageListener);
406 enqueueOneByOne("data:hello\r\ndata:world\revent:a\revent:b\nid:4\n\nid:8\nd ata:bye\r\n\r"); 406 enqueueOneByOne("data:hello\r\ndata:world\revent:a\revent:b\nid:4\n\nid:8\nd ata:bye\r\n\r");
407 407
408 ASSERT_EQ(0u, aListener->events().size()); 408 ASSERT_EQ(0u, aListener->events().size());
409 409
410 ASSERT_EQ(1u, bListener->events().size()); 410 ASSERT_EQ(1u, bListener->events().size());
411 ASSERT_EQ("b", bListener->events()[0]->type()); 411 ASSERT_EQ("b", bListener->events()[0]->type());
412 RefPtrWillBeRawPtr<MessageEvent> bEvent = static_cast<MessageEvent*>(bListen er->events()[0].get()); 412 RawPtr<MessageEvent> bEvent = static_cast<MessageEvent*>(bListener->events() [0].get());
413 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, bEvent->dataType()); 413 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, bEvent->dataType());
414 EXPECT_EQ("hello\nworld", dataAsString(scriptState(), bEvent.get())); 414 EXPECT_EQ("hello\nworld", dataAsString(scriptState(), bEvent.get()));
415 EXPECT_EQ("4", bEvent->lastEventId()); 415 EXPECT_EQ("4", bEvent->lastEventId());
416 416
417 ASSERT_EQ(1u, messageListener->events().size()); 417 ASSERT_EQ(1u, messageListener->events().size());
418 ASSERT_EQ("message", messageListener->events()[0]->type()); 418 ASSERT_EQ("message", messageListener->events()[0]->type());
419 RefPtrWillBeRawPtr<MessageEvent> messageEvent = static_cast<MessageEvent*>(m essageListener->events()[0].get()); 419 RawPtr<MessageEvent> messageEvent = static_cast<MessageEvent*>(messageListen er->events()[0].get());
420 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, messageEvent->dataTyp e()); 420 ASSERT_EQ(MessageEvent::DataTypeSerializedScriptValue, messageEvent->dataTyp e());
421 EXPECT_EQ("bye", dataAsString(scriptState(), messageEvent.get())); 421 EXPECT_EQ("bye", dataAsString(scriptState(), messageEvent.get()));
422 EXPECT_EQ("8", messageEvent->lastEventId()); 422 EXPECT_EQ("8", messageEvent->lastEventId());
423 } 423 }
424 424
425 } // namespace 425 } // namespace
426 426
427 } // namespace blink 427 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698