Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
halildurmus committed Dec 17, 2022
1 parent 6806678 commit 24f1c73
Show file tree
Hide file tree
Showing 11 changed files with 264 additions and 192 deletions.
19 changes: 9 additions & 10 deletions test/com_network_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ void main() {
final nlm = NetworkListManager.createInstance();
expect(nlm.ptr.address, isNonZero);

free(nlm.ptr);

nlm.release();
CoUninitialize();
});

Expand All @@ -31,14 +30,14 @@ void main() {
test('Network is connected', () {
final nlm = NetworkListManager.createInstance();
expect(nlm.isConnected, equals(VARIANT_TRUE));
free(nlm.ptr);
nlm.release();
});

test('Network is connected to the internet', () {
for (var i = 0; i < testRuns; i++) {
final nlm = NetworkListManager.createInstance();
expect(nlm.isConnectedToInternet, equals(VARIANT_TRUE));
free(nlm.ptr);
nlm.release();
}
});

Expand All @@ -61,9 +60,9 @@ void main() {
expect(network.isConnected,
anyOf(equals(VARIANT_TRUE), equals(VARIANT_FALSE)));

free(netPtr);
free(enumPtr);
free(nlm.ptr);
network.release();
enumerator.release();
nlm.release();
});

test('First network connection has a description', () {
Expand All @@ -87,9 +86,9 @@ void main() {
// more than one character long, and test for that.
expect(descPtr.value.length, greaterThan(1));

free(netPtr);
free(enumPtr);
free(nlm.ptr);
network.release();
enumerator.release();
nlm.release();
});

tearDown(CoUninitialize);
Expand Down
39 changes: 19 additions & 20 deletions test/com_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ void main() {
free(iidClassFactory);
free(clsid);
free(ptrSaveDialog);
free(ptrFactory);
classFactory.release();

CoUninitialize();
});
Expand All @@ -128,39 +128,35 @@ void main() {

group('COM object tests', () {
late FileOpenDialog dialog;

setUp(() {
final hr = CoInitializeEx(
nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (FAILED(hr)) throw WindowsException(hr);

dialog = FileOpenDialog.createInstance();
});

test('Dialog object exists', () {
expect(dialog.ptr.address, isNonZero);
});
test('Can cast to IUnknown', () {
final riid = convertToIID(IID_IUnknown);

final classPtr = calloc<Pointer>();
final hr = dialog.queryInterface(riid.cast(), classPtr);
expect(hr, equals(S_OK));

final unk = IUnknown(classPtr.cast());
test('Can cast to IUnknown', () {
final unk = IUnknown.from(dialog);
expect(unk.ptr.address, isNonZero);

free(classPtr);
free(riid);
unk.release();
});
test('Cast to random interface fails', () {
final riid = convertToIID(IID_IDesktopWallpaper);

final classPtr = calloc<Pointer>();
final hr = dialog.queryInterface(riid.cast(), classPtr);
expect(hr, equals(E_NOINTERFACE));

free(classPtr);
free(riid);
test('Cast to random interface fails', () {
expect(
() => dialog.toInterface(IID_IDesktopWallpaper),
throwsA(isA<WindowsException>()
.having((e) => e.hr, 'hr', equals(E_NOINTERFACE))
.having((e) => e.toString(), 'message',
contains('No such interface supported'))));
});

test('AddRef / Release', () {
var refs = dialog.addRef();
expect(refs, equals(2));
Expand All @@ -174,21 +170,24 @@ void main() {
refs = dialog.release();
expect(refs, equals(1));
});

tearDown(() {
free(dialog.ptr);
dialog.release();
CoUninitialize();
});
});

group('COM object casting using methods', () {
late FileOpenDialog dialog;

setUp(() {
final hr = CoInitializeEx(
nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (FAILED(hr)) throw WindowsException(hr);

dialog = FileOpenDialog.createInstance();
});

test('Can cast to various supported interfaces', () {
expect(() => IUnknown.from(dialog), returnsNormally);
expect(() => IModalWindow.from(dialog), returnsNormally);
Expand All @@ -209,7 +208,7 @@ void main() {
});

tearDown(() {
free(dialog.ptr);
dialog.release();
CoUninitialize();
});
});
Expand Down
47 changes: 22 additions & 25 deletions test/winrt_calendar_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// ignore_for_file: constant_identifier_names

@TestOn('windows')

import 'package:test/test.dart';
Expand All @@ -10,11 +8,10 @@ import 'package:win32/winrt.dart';

void main() {
if (isWindowsRuntimeAvailable()) {
late ICalendar calendar;
late Calendar calendar;

setUp(() {
winrtInitialize();

calendar = Calendar();
});

Expand All @@ -30,25 +27,32 @@ void main() {
expect(
calendar2.runtimeClassName, equals('Windows.Globalization.Calendar'));
expect(calendar2.year, equals(calendar.year));

calendar2.release();
});

test('Calendar.setToMin', () {
final today = calendar.clone();

calendar.setToMin();
expect(calendar.compare(today), isNegative);

today.release();
});

test('Calendar.setToMax', () {
final today = calendar.clone();

calendar.setToMax();
expect(calendar.compare(today), isPositive);

today.release();
});

test('Calendar.languages', () {
expect(calendar.languages.length, isPositive);
expect(calendar.languages.first, contains('-')); // e.g. en-US
final languages = calendar.languages;
expect(languages.length, isPositive);
expect(languages.first, contains('-')); // e.g. en-US
});

test('Calendar.numeralSystem getter', () {
Expand Down Expand Up @@ -166,7 +170,12 @@ void main() {
expect(calendar.era, equals(4));
});

test('Calendar.eraAsFullString', () {
test('Calendar.eraAsFullString (GregorianCalendar)', () {
calendar.changeCalendarSystem('GregorianCalendar');
expect(calendar.eraAsFullString(), equals('A.D.'));
});

test('Calendar.eraAsFullString (JapaneseCalendar)', () {
calendar
..changeCalendarSystem('JapaneseCalendar')
..era = 1 // 明治 (Meiji)
Expand Down Expand Up @@ -234,10 +243,6 @@ void main() {
expect(calendar.firstMonthInThisYear, equals(1));
});

test('Calendar.firstMonthInThisYear getter', () {
expect(calendar.firstMonthInThisYear, equals(1));
});

test('Calendar.firstSecondInThisMinute getter', () {
expect(calendar.firstSecondInThisMinute, equals(0));
});
Expand Down Expand Up @@ -329,15 +334,6 @@ void main() {
expect(resolvedLanguage.length, equals(5));
});

test('Calendar.numeralSystem getter', () {
final arabicNumerals = '٠١٢٣٤٥٦٧٨٩'.split('');
calendar.numeralSystem = 'arab';
final date = calendar.monthAsPaddedNumericString(2);

expect(arabicNumerals, contains(date[0]));
expect(arabicNumerals, contains(date[1]));
});

test('Calendar.period getter', () {
calendar.changeClock('12HourClock');
expect(calendar.period, isIn([1, 2]));
Expand Down Expand Up @@ -382,6 +378,8 @@ void main() {
..addDays(-1);
final compare = calendar.compare(original);
expect(compare, isZero);

original.release();
});

test('Compare positive', () {
Expand All @@ -391,6 +389,8 @@ void main() {
..addDays(-1);
final compare = calendar.compare(original);
expect(compare, isPositive);

original.release();
});

test('Compare negative', () {
Expand All @@ -400,11 +400,8 @@ void main() {
..addDays(-3);
final compare = calendar.compare(original);
expect(compare, isNegative);
});

test('Calendar.eraAsFullString', () {
calendar.changeCalendarSystem('GregorianCalendar');
expect(calendar.eraAsFullString(), equals('A.D.'));
original.release();
});

test('Calendar.monthAsFullString', () {
Expand Down Expand Up @@ -470,7 +467,7 @@ void main() {
// });

tearDown(() {
free(calendar.ptr);
calendar.release();
winrtUninitialize();
});
}
Expand Down
Loading

0 comments on commit 24f1c73

Please sign in to comment.