[Client] Add canonical json

This commit is contained in:
Christian Pauly 2020-02-04 18:01:53 +01:00
parent 166b1a9464
commit cabb5679a7
3 changed files with 72 additions and 0 deletions

View File

@ -85,6 +85,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "6.6.0"
canonical_json:
dependency: "direct main"
description:
name: canonical_json
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
charcode:
dependency: transitive
description:
@ -449,6 +456,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
unorm_dart:
dependency: transitive
description:
name: unorm_dart
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
vm_service:
dependency: transitive
description:

View File

@ -10,6 +10,7 @@ environment:
dependencies:
http: ^0.12.0+2
mime_type: ^0.2.4
canonical_json: ^1.0.0
dev_dependencies:
test: ^1.0.0

View File

@ -0,0 +1,57 @@
/*
* Copyright (c) 2019 Zender & Kurtz GbR.
*
* Authors:
* Christian Pauly <krille@famedly.com>
* Marcel Radzio <mtrnord@famedly.com>
*
* This file is part of famedlysdk.
*
* famedlysdk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* famedlysdk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
*/
import 'package:canonical_json/canonical_json.dart';
import 'package:test/test.dart';
void main() {
/// All Tests related to the ChatTime
group("Canonical Json", () {
Map<String, Map<String, dynamic>> textMap = {
'{}': {},
'{"one":1,"two":"Two"}': {"one": 1, "two": "Two"},
'{"a":"1","b":"2"}': {"b": "2", "a": "1"},
'{"auth":{"mxid":"@john.doe:example.com","profile":{"display_name":"John Doe","three_pids":[{"address":"john.doe@example.org","medium":"email"},{"address":"123456789","medium":"msisdn"}]},"success":true}}':
{
"auth": {
"success": true,
"mxid": "@john.doe:example.com",
"profile": {
"display_name": "John Doe",
"three_pids": [
{"medium": "email", "address": "john.doe@example.org"},
{"medium": "msisdn", "address": "123456789"}
]
}
}
},
'{"a":null}': {"a": null},
};
for (final entry in textMap.entries) {
test(entry.key, () async {
expect(
entry.key, String.fromCharCodes(canonicalJson.encode(entry.value)));
});
}
});
}