| // Copyright 2014 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| import 'dart:typed_data'; | |
| import 'package:flutter/services.dart'; | |
| const MethodChannel _kMethodChannel = MethodChannel('tests.flutter.dev/windows_startup_test'); | |
| /// Returns true if the application's window is visible. | |
| Future<bool> isWindowVisible() async { | |
| final bool? visible = await _kMethodChannel.invokeMethod<bool?>('isWindowVisible'); | |
| if (visible == null) { | |
| throw 'Method channel unavailable'; | |
| } | |
| return visible; | |
| } | |
| /// Returns true if the app's dark mode is enabled. | |
| Future<bool> isAppDarkModeEnabled() async { | |
| final bool? enabled = await _kMethodChannel.invokeMethod<bool?>('isAppDarkModeEnabled'); | |
| if (enabled == null) { | |
| throw 'Method channel unavailable'; | |
| } | |
| return enabled; | |
| } | |
| /// Returns true if the operating system dark mode setting is enabled. | |
| Future<bool> isSystemDarkModeEnabled() async { | |
| final bool? enabled = await _kMethodChannel.invokeMethod<bool?>('isSystemDarkModeEnabled'); | |
| if (enabled == null) { | |
| throw 'Method channel unavailable'; | |
| } | |
| return enabled; | |
| } | |
| /// Test conversion of a UTF16 string to UTF8 using the app template utils. | |
| Future<String> testStringConversion(Int32List twoByteCodes) async { | |
| final String? converted = await _kMethodChannel.invokeMethod<String?>( | |
| 'convertString', | |
| twoByteCodes, | |
| ); | |
| if (converted == null) { | |
| throw 'Method channel unavailable.'; | |
| } | |
| return converted; | |
| } | |
| /// Test that Utf8FromUtf16 handles nullptr gracefully. | |
| Future<String> testNullStringConversion() async { | |
| final String? converted = await _kMethodChannel.invokeMethod<String?>('convertNullString'); | |
| if (converted == null) { | |
| throw 'Method channel unavailable.'; | |
| } | |
| return converted; | |
| } | |
| /// Test that Utf8FromUtf16 handles empty string gracefully. | |
| Future<String> testEmptyStringConversion() async { | |
| final String? converted = await _kMethodChannel.invokeMethod<String?>('convertEmptyString'); | |
| if (converted == null) { | |
| throw 'Method channel unavailable.'; | |
| } | |
| return converted; | |
| } | |
| /// Test that Utf8FromUtf16 handles invalid UTF-16 (unpaired surrogate) gracefully. | |
| Future<String> testInvalidUtf16Conversion() async { | |
| final String? converted = await _kMethodChannel.invokeMethod<String?>('convertInvalidUtf16'); | |
| if (converted == null) { | |
| throw 'Method channel unavailable.'; | |
| } | |
| return converted; | |
| } |