Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matrix-org
Olm
Commits
fb91b1f1
Commit
fb91b1f1
authored
Dec 20, 2016
by
Richard van der Hoff
Committed by
GitHub
Dec 20, 2016
Browse files
Merge pull request #41 from matrix-org/rav/js_tests
Add some tests for the Javascript wrappers
parents
819f0d24
e2e398bd
Changes
5
Show whitespace changes
Inline
Side-by-side
javascript/.gitignore
View file @
fb91b1f1
...
@@ -2,3 +2,4 @@
...
@@ -2,3 +2,4 @@
/node_modules
/node_modules
/npm-debug.log
/npm-debug.log
/olm.js
/olm.js
/reports
javascript/package.json
View file @
fb91b1f1
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
],
],
"scripts"
:
{
"scripts"
:
{
"build"
:
"make -C .. js"
,
"build"
:
"make -C .. js"
,
"test"
:
"
echo
\"
Error: no test specified
\"
&& exit 1
"
"test"
:
"
jasmine-node test --verbose --junitreport --captureExceptions
"
},
},
"repository"
:
{
"repository"
:
{
"type"
:
"git"
,
"type"
:
"git"
,
...
@@ -23,5 +23,8 @@
...
@@ -23,5 +23,8 @@
"bugs"
:
{
"bugs"
:
{
"url"
:
"https://github.com/matrix-org/olm/issues"
"url"
:
"https://github.com/matrix-org/olm/issues"
},
},
"homepage"
:
"https://github.com/matrix-org/olm#readme"
"homepage"
:
"https://github.com/matrix-org/olm#readme"
,
"devDependencies"
:
{
"jasmine-node"
:
"^1.14.5"
}
}
}
javascript/test/megolm.spec.js
0 → 100644
View file @
fb91b1f1
/*
Copyright 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
"
use strict
"
;
var
Olm
=
require
(
'
../olm
'
);
describe
(
"
megolm
"
,
function
()
{
var
aliceSession
,
bobSession
;
beforeEach
(
function
()
{
aliceSession
=
new
Olm
.
OutboundGroupSession
();
bobSession
=
new
Olm
.
InboundGroupSession
();
});
afterEach
(
function
()
{
if
(
aliceSession
!==
undefined
)
{
aliceSession
.
free
();
aliceSession
=
undefined
;
}
if
(
bobSession
!==
undefined
)
{
bobSession
.
free
();
bobSession
=
undefined
;
}
});
it
(
"
should encrypt and decrypt
"
,
function
()
{
aliceSession
.
create
();
expect
(
aliceSession
.
message_index
()).
toEqual
(
0
);
bobSession
.
create
(
aliceSession
.
session_key
());
var
TEST_TEXT
=
'
têst1
'
;
var
encrypted
=
aliceSession
.
encrypt
(
TEST_TEXT
);
var
decrypted
=
bobSession
.
decrypt
(
encrypted
);
console
.
log
(
TEST_TEXT
,
"
->
"
,
decrypted
);
expect
(
decrypted
.
plaintext
).
toEqual
(
TEST_TEXT
);
expect
(
decrypted
.
message_index
).
toEqual
(
0
);
TEST_TEXT
=
'
hot beverage: ☕
'
;
encrypted
=
aliceSession
.
encrypt
(
TEST_TEXT
);
decrypted
=
bobSession
.
decrypt
(
encrypted
);
console
.
log
(
TEST_TEXT
,
"
->
"
,
decrypted
);
expect
(
decrypted
.
plaintext
).
toEqual
(
TEST_TEXT
);
expect
(
decrypted
.
message_index
).
toEqual
(
1
);
// shorter text, to spot buffer overruns
TEST_TEXT
=
'
☕
'
;
encrypted
=
aliceSession
.
encrypt
(
TEST_TEXT
);
decrypted
=
bobSession
.
decrypt
(
encrypted
);
console
.
log
(
TEST_TEXT
,
"
->
"
,
decrypted
);
expect
(
decrypted
.
plaintext
).
toEqual
(
TEST_TEXT
);
expect
(
decrypted
.
message_index
).
toEqual
(
2
);
});
});
javascript/test/olm.spec.js
0 → 100644
View file @
fb91b1f1
/*
Copyright 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
"
use strict
"
;
var
Olm
=
require
(
'
../olm
'
);
if
(
!
Object
.
keys
)
{
Object
.
keys
=
function
(
o
)
{
var
k
=
[],
p
;
for
(
p
in
o
)
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
o
,
p
))
k
.
push
(
p
);
return
k
;
}
}
describe
(
"
olm
"
,
function
()
{
var
aliceAccount
,
bobAccount
;
var
aliceSession
,
bobSession
;
beforeEach
(
function
()
{
aliceAccount
=
new
Olm
.
Account
();
bobAccount
=
new
Olm
.
Account
();
aliceSession
=
new
Olm
.
Session
();
bobSession
=
new
Olm
.
Session
();
});
afterEach
(
function
()
{
if
(
aliceAccount
!==
undefined
)
{
aliceAccount
.
free
();
aliceAccount
=
undefined
;
}
if
(
bobAccount
!==
undefined
)
{
bobAccount
.
free
();
bobAccount
=
undefined
;
}
if
(
aliceSession
!==
undefined
)
{
aliceSession
.
free
();
aliceSession
=
undefined
;
}
if
(
bobSession
!==
undefined
)
{
bobSession
.
free
();
bobSession
=
undefined
;
}
});
it
(
'
should encrypt and decrypt
'
,
function
()
{
aliceAccount
.
create
();
bobAccount
.
create
();
bobAccount
.
generate_one_time_keys
(
1
);
var
bobOneTimeKeys
=
JSON
.
parse
(
bobAccount
.
one_time_keys
()).
curve25519
;
bobAccount
.
mark_keys_as_published
();
var
bobIdKey
=
JSON
.
parse
(
bobAccount
.
identity_keys
()).
curve25519
;
var
otk_id
=
Object
.
keys
(
bobOneTimeKeys
)[
0
];
aliceSession
.
create_outbound
(
aliceAccount
,
bobIdKey
,
bobOneTimeKeys
[
otk_id
]
);
var
TEST_TEXT
=
'
têst1
'
;
var
encrypted
=
aliceSession
.
encrypt
(
TEST_TEXT
);
expect
(
encrypted
.
type
).
toEqual
(
0
);
bobSession
.
create_inbound
(
bobAccount
,
encrypted
.
body
);
bobAccount
.
remove_one_time_keys
(
bobSession
);
var
decrypted
=
bobSession
.
decrypt
(
encrypted
.
type
,
encrypted
.
body
);
console
.
log
(
TEST_TEXT
,
"
->
"
,
decrypted
);
expect
(
decrypted
).
toEqual
(
TEST_TEXT
);
TEST_TEXT
=
'
hot beverage: ☕
'
;
encrypted
=
bobSession
.
encrypt
(
TEST_TEXT
);
expect
(
encrypted
.
type
).
toEqual
(
1
);
decrypted
=
aliceSession
.
decrypt
(
encrypted
.
type
,
encrypted
.
body
);
console
.
log
(
TEST_TEXT
,
"
->
"
,
decrypted
);
expect
(
decrypted
).
toEqual
(
TEST_TEXT
);
});
});
jenkins.sh
View file @
fb91b1f1
...
@@ -11,4 +11,5 @@ make test
...
@@ -11,4 +11,5 @@ make test
.
~/.emsdk_set_env.sh
.
~/.emsdk_set_env.sh
make js
make js
(
cd
javascript
&&
npm run
test
)
npm pack javascript
npm pack javascript
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment