Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Mullvad Browser
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
The Tor Project
Applications
Mullvad Browser
Commits
7e236c76
Commit
7e236c76
authored
12 years ago
by
Serge Gautherie
Browse files
Options
Downloads
Patches
Plain Diff
Bug 744663. (Av1) Improve documentation and logs, Nits. r=smaug.
(a=test-only)
parent
f381eaef
Loading
Loading
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
content/base/test/test_websocket_basic.html
+98
-72
98 additions, 72 deletions
content/base/test/test_websocket_basic.html
with
98 additions
and
72 deletions
content/base/test/test_websocket_basic.html
+
98
−
72
View file @
7e236c76
<!DOCTYPE HTML>
<html>
<!--
-->
<head>
<title>
Basic
w
eb
s
ocket test
</title>
<title>
Basic
W
eb
S
ocket test
</title>
<script
type=
"text/javascript"
src=
"/tests/SimpleTest/SimpleTest.js"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"/tests/SimpleTest/test.css"
/>
</head>
<body
onload=
"testWebSocket()"
>
<a
target=
"_blank"
href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=472529"
>
Mozilla Bug
</a>
<a
target=
"_blank"
href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=472529"
>
Mozilla Bug
472529
</a>
<p
id=
"display"
></p>
<div
id=
"content"
style=
"display: none"
>
</div>
<pre
id=
"test"
>
<script
class=
"testbody"
type=
"text/javascript"
>
const
kUrl
=
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
;
var
ws
;
var
params
=
[
"
protocol
"
,
"
resource
"
,
"
origin
"
,
"
end
"
];
var
results
=
[
"
test
"
,
"
/tests/content/base/test/file_websocket_basic
"
,
"
http://mochi.test:8888
"
,
"
end
"
];
function
forcegc
(){
function
forcegc
()
{
SpecialPowers
.
forceGC
();
SpecialPowers
.
gc
();
}
function
finishWSTest
()
{
SimpleTest
.
finish
();
SimpleTest
.
finish
();
}
function
testWebSocket
()
{
var
url
=
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
;
ws
=
new
WebSocket
(
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
,
"
test
"
);
is
(
ws
.
url
,
url
,
"
Wrong Websocket.url!
"
);
function
testWebSocket
()
{
testWebSocket1
();
}
/**
* Sends message keywords, then receives their values.
*/
function
testWebSocket1
()
{
ws
=
new
WebSocket
(
kUrl
,
"
test
"
);
is
(
ws
.
url
,
kUrl
,
"
[1] WebSocket.url
"
);
ws
.
onopen
=
function
(
e
)
{
const
params
=
[
"
protocol
"
,
"
resource
"
,
"
origin
"
,
"
end
"
];
for
(
var
i
=
0
;
i
<
params
.
length
;
++
i
)
{
document
.
getElementById
(
'
log
'
).
textContent
+=
"
sending
"
+
params
[
i
]
+
"
\n
"
;
ws
.
send
(
params
[
i
]);
}
}
}
;
ws
.
onclose
=
function
(
e
)
{
is
(
results
.
length
,
0
,
"
All the messages should have been processed!
"
);
ok
(
e
.
wasClean
,
"
Connection closed cleanly
"
);
is
(
results
.
length
,
0
,
"
[1] Number of unreceived messages
"
);
ok
(
e
.
wasClean
,
"
[1] Connection closed cleanly
"
);
testWebSocket2
();
}
}
;
ws
.
onerror
=
function
(
e
)
{
ok
(
false
,
"
onerror called!
"
);
ok
(
false
,
"
[1]
onerror
() should not have been
called!
"
);
finishWSTest
();
}
}
;
ws
.
onmessage
=
function
(
e
)
{
document
.
getElementById
(
'
log
'
).
textContent
+=
"
\n
"
+
e
.
data
;
is
(
e
.
data
,
results
[
0
],
"
Unexpect
ed message
"
);
is
(
e
.
data
,
results
[
0
],
"
[1] Receiv
ed message
"
);
results
.
shift
();
}
}
;
}
/**
* Sends 1000(+1) test messages, then receives them.
*/
function
testWebSocket2
()
{
ws
=
new
WebSocket
(
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
,
"
test
"
)
;
var
testCount
=
1000
;
// Send lots of messages
const
testCount
=
1000
;
var
messageCount
=
0
;
var
testMessage
=
"
test message
"
;
ws
=
new
WebSocket
(
kUrl
,
"
test
"
);
ws
.
onopen
=
function
(
e
)
{
for
(
var
i
=
0
;
i
<
testCount
;
++
i
)
{
ws
.
send
(
testMessage
+
(
i
+
1
)
);
for
(
var
i
=
1
;
i
<
=
testCount
;
++
i
)
{
ws
.
send
(
testMessage
+
i
);
}
ws
.
send
(
"
end
"
);
}
}
;
ws
.
onclose
=
function
(
e
)
{
is
(
messageCount
,
testCount
,
"
Didn't receive all the messages!
"
);
ok
(
e
.
wasClean
,
"
Connection closed cleanly
"
);
is
(
messageCount
,
testCount
,
"
[2] Number of received messages
"
);
ok
(
e
.
wasClean
,
"
[2] Connection closed cleanly
"
);
testWebSocket3
();
}
}
;
ws
.
onerror
=
function
(
e
)
{
ok
(
false
,
"
onerror called!
"
);
ok
(
false
,
"
[2]
onerror
() should not have been
called!
"
);
finishWSTest
();
}
}
;
ws
.
onmessage
=
function
(
e
)
{
++
messageCount
;
is
(
e
.
data
,
testMessage
+
messageCount
,
"
Wrong
message
"
);
is
(
e
.
data
,
testMessage
+
messageCount
,
"
[2] Received
message
"
);
document
.
getElementById
(
'
log
'
).
textContent
=
messageCount
;
if
(
messageCount
==
testCount
)
{
this
.
onmessage
=
null
;
}
}
}
;
}
/**
* Sends 100(+1) test messages, then receives them, calling forcegc() at each step.
*/
function
testWebSocket3
()
{
ws
=
new
WebSocket
(
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
,
"
test
"
)
;
var
testCount
=
100
;
// Send lots of messages
const
testCount
=
100
;
var
messageCount
=
0
;
var
testMessage
=
"
test message
"
;
ws
=
new
WebSocket
(
kUrl
,
"
test
"
);
ws
.
onopen
=
function
(
e
)
{
for
(
var
i
=
0
;
i
<
testCount
;
++
i
)
{
forcegc
();
// Do something evil, call cycle collector a lot.
ws
.
send
(
testMessage
+
(
i
+
1
)
);
for
(
var
i
=
1
;
i
<
=
testCount
;
++
i
)
{
forcegc
();
ws
.
send
(
testMessage
+
i
);
}
ws
.
send
(
"
end
"
);
}
}
;
ws
.
onclose
=
function
(
e
)
{
is
(
messageCount
,
testCount
,
"
Didn't receive all the messages!
"
);
ok
(
e
.
wasClean
,
"
Connection closed cleanly
"
);
is
(
messageCount
,
testCount
,
"
[3] Number of received messages
"
);
ok
(
e
.
wasClean
,
"
[3] Connection closed cleanly
"
);
testWebSocket4
();
}
}
;
ws
.
onerror
=
function
(
e
)
{
ok
(
false
,
"
onerror called!
"
);
ok
(
false
,
"
[3]
onerror
() should not have been
called!
"
);
finishWSTest
();
}
}
;
ws
.
onmessage
=
function
(
e
)
{
forcegc
();
// Do something evil, call cycle collector a lot.
forcegc
();
++
messageCount
;
is
(
e
.
data
,
testMessage
+
messageCount
,
"
Wrong
message
"
);
is
(
e
.
data
,
testMessage
+
messageCount
,
"
[3] Received
message
"
);
document
.
getElementById
(
'
log
'
).
textContent
=
messageCount
;
if
(
messageCount
==
testCount
)
{
this
.
onmessage
=
null
;
}
}
}
;
}
/**
* Sends a huge test message, then receives it, then closes the WebSocket from client-side.
*/
function
testWebSocket4
()
{
ws
=
new
WebSocket
(
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
,
"
test
"
);
ws
=
new
WebSocket
(
kUrl
,
"
test
"
);
// String length = (10,000 - 1) * 23 = 229,977 = almost 225 KiB.
var
longString
=
new
Array
(
10000
).
join
(
"
-huge websocket message
"
);
ws
.
onopen
=
function
(
e
)
{
is
(
this
,
ws
,
"
'this' should point to the WebSocket.
(1)
"
);
is
(
this
,
ws
,
"
[4, onopen()]
'this' should point to the WebSocket.
"
);
ws
.
send
(
longString
);
}
}
;
ws
.
onclose
=
function
(
e
)
{
is
(
this
,
ws
,
"
'this' should point to the WebSocket. (2)
"
);
ok
(
e
.
wasClean
,
"
Connection closed cleanly
"
);
is
(
this
,
ws
,
"
[4, onclose()] 'this' should point to the WebSocket.
"
);
ok
(
e
.
wasClean
,
"
[4] Connection closed cleanly
"
);
testWebSocket5
();
}
}
;
ws
.
onerror
=
function
(
e
)
{
ok
(
false
,
"
onerror called!
"
);
is
(
this
,
ws
,
"
[4, onerror()] 'this' should point to the WebSocket.
"
);
ok
(
false
,
"
[4, onerror()] should not have been called!
"
);
finishWSTest
();
}
}
;
ws
.
onmessage
=
function
(
e
)
{
is
(
this
,
ws
,
"
'this' should point to the WebSocket.
(3)
"
);
is
(
this
,
ws
,
"
[4, onmessage()]
'this' should point to the WebSocket.
"
);
// Do not use |is(e.data, longString, "...");| that results in a _very_ long line.
is
(
e
.
data
.
length
,
longString
.
length
,
"
Length of received message
"
);
ok
(
e
.
data
==
longString
,
"
Content of received message
"
);
is
(
e
.
data
.
length
,
longString
.
length
,
"
[4]
Length of received message
"
);
ok
(
e
.
data
==
longString
,
"
[4]
Content of received message
"
);
document
.
getElementById
(
'
log
'
).
textContent
+=
"
\n
Received the huge message
"
;
this
.
close
();
}
}
;
}
/**
* Closes the WebSocket from client-side, then sends a test message that should be buffered.
*/
function
testWebSocket5
()
{
ws
=
new
WebSocket
(
"
ws://mochi.test:8888/tests/content/base/test/file_websocket_basic
"
,
"
test
"
);
ws
=
new
WebSocket
(
kUrl
,
"
test
"
);
ws
.
onopen
=
function
(
e
)
{
is
(
this
.
bufferedAmount
,
0
,
"
[5] Length of empty buffer before closing
"
);
this
.
close
();
}
}
;
ws
.
onclose
=
function
(
e
)
{
ok
(
e
.
wasClean
,
"
Connection closed cleanly
"
);
is
(
this
.
bufferedAmount
,
0
,
"
Shouldn't have anything buffered
"
);
var
msg
=
"
some data
"
;
ok
(
e
.
wasClean
,
"
[5] Connection closed cleanly
"
);
is
(
this
.
bufferedAmount
,
0
,
"
[5] Length of empty buffer after closing
"
);
var
msg
=
"
test message to be buffered
"
;
this
.
send
(
msg
);
is
(
this
.
bufferedAmount
,
msg
.
length
,
"
Should have some data buffered
"
);
is
(
this
.
bufferedAmount
,
msg
.
length
,
"
[5] Length of buffered message sent after closing
"
);
finishWSTest
();
}
}
;
ws
.
onerror
=
function
(
e
)
{
ok
(
false
,
"
onerror called!
"
);
ok
(
false
,
"
[5]
onerror
() should not have been
called!
"
);
finishWSTest
();
}
}
;
}
SimpleTest
.
waitForExplicitFinish
();
...
...
@@ -169,11 +201,5 @@ SimpleTest.waitForExplicitFinish();
<pre
id=
"log"
>
</pre>
</pre>
<div>
</div>
</body>
</html>
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment