Skip to content

Commit c6a7e88

Browse files
committed
✅ add more tests
1 parent 9ae4af9 commit c6a7e88

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

test/unit/utils_test.dart

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// ignore_for_file: deprecated_member_use_from_same_package
22

33
import 'dart:convert' show latin1, utf8;
4+
import 'dart:math';
45

56
import 'package:qs_dart/qs_dart.dart';
67
import 'package:qs_dart/src/utils.dart';
@@ -905,5 +906,42 @@ void main() {
905906
expect(combined, equals([1, 2]));
906907
});
907908
});
909+
910+
test('decode', () {
911+
expect(Utils.decode('a+b'), equals('a b'));
912+
expect(Utils.decode('name%2Eobj'), equals('name.obj'));
913+
expect(Utils.decode('name%2Eobj%2Efoo', charset: latin1),
914+
equals('name.obj.foo'));
915+
});
916+
917+
test('encode', () {
918+
expect(Utils.encode(''), equals(''));
919+
920+
expect(Utils.encode('(abc)'), equals('%28abc%29'));
921+
922+
expect(
923+
Utils.encode('abc 123 💩', charset: latin1),
924+
equals('abc%20123%20%26%2355357%3B%26%2356489%3B'),
925+
);
926+
927+
final StringBuffer longString = StringBuffer();
928+
final StringBuffer expectedString = StringBuffer();
929+
for (int i = 0; i < 1500; i++) {
930+
longString.write(' ');
931+
expectedString.write('%20');
932+
}
933+
expect(
934+
Utils.encode(longString.toString()),
935+
equals(expectedString.toString()),
936+
);
937+
938+
expect(Utils.encode('\x28\x29'), equals('%28%29'));
939+
940+
expect(Utils.encode('\x28\x29', format: Format.rfc1738), equals('()'));
941+
942+
expect(Utils.encode('Āက豈'), equals('%C4%80%E1%80%80%EF%A4%80'));
943+
944+
expect(Utils.encode('\uD83D\uDCA9'), equals('%F0%9F%92%A9'));
945+
});
908946
});
909947
}

0 commit comments

Comments
 (0)