add test mode, update cm_test

This commit is contained in:
csf 2022-10-20 23:05:34 +09:00
parent bd68969dac
commit afa94d5907
3 changed files with 52 additions and 10 deletions

View File

@ -43,6 +43,9 @@ var version = "";
int androidVersion = 0;
DesktopType? desktopType;
/// * debug or test only, DO NOT enable in release build
bool isTest = false;
typedef F = String Function(String);
typedef FMethod = String Function(String, dynamic);

View File

@ -92,6 +92,7 @@ class ServerModel with ChangeNotifier {
_serverId = IDTextEditingController(text: _emptyIdShow);
Timer.periodic(Duration(seconds: 1), (timer) async {
if (isTest) return timer.cancel();
var status = await bind.mainGetOnlineStatue();
if (status > 0) {
status = 1;
@ -343,6 +344,7 @@ class ServerModel with ChangeNotifier {
// force
updateClientState([String? json]) async {
if (isTest) return;
var res = await bind.cmGetClientsState();
try {
final List clientsJson = jsonDecode(res);

View File

@ -2,26 +2,63 @@ import 'package:flutter/material.dart';
import 'package:flutter_hbb/common.dart';
import 'package:flutter_hbb/consts.dart';
import 'package:flutter_hbb/desktop/pages/server_page.dart';
import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart';
import 'package:flutter_hbb/main.dart';
import 'package:flutter_hbb/models/server_model.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
import 'package:window_manager/window_manager.dart';
final testClients = [
Client(0, false, false, "UserAAAAAA", "123123123", true, false, false),
Client(1, false, false, "UserBBBBB", "221123123", true, false, false),
Client(2, false, false, "UserC", "331123123", true, false, false),
Client(3, false, false, "UserDDDDDDDDDDDd", "441123123", true, false, false)
];
/// -t lib/cm_main.dart to test cm
void main(List<String> args) async {
isTest = true;
WidgetsFlutterBinding.ensureInitialized();
await windowManager.ensureInitialized();
await windowManager.setSize(const Size(400, 600));
await windowManager.setAlignment(Alignment.topRight);
await initEnv(kAppTypeMain);
gFFI.serverModel.clients
.add(Client(0, false, false, "UserA", "123123123", true, false, false));
gFFI.serverModel.clients
.add(Client(1, false, false, "UserB", "221123123", true, false, false));
gFFI.serverModel.clients
.add(Client(2, false, false, "UserC", "331123123", true, false, false));
gFFI.serverModel.clients
.add(Client(3, false, false, "UserD", "441123123", true, false, false));
runApp(const GetMaterialApp(
debugShowCheckedModeBanner: false, home: DesktopServerPage()));
for (var client in testClients) {
gFFI.serverModel.clients.add(client);
gFFI.serverModel.tabController.add(
TabInfo(
key: client.id.toString(),
label: client.name,
closable: false,
page: buildConnectionCard(client)),
authorized: client.authorized);
}
runApp(GetMaterialApp(
debugShowCheckedModeBanner: false,
theme: MyTheme.lightTheme,
darkTheme: MyTheme.darkTheme,
themeMode: MyTheme.currentThemeMode(),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
home: const DesktopServerPage()));
WindowOptions windowOptions =
getHiddenTitleBarWindowOptions(size: kConnectionManagerWindowSize);
windowManager.waitUntilReadyToShow(windowOptions, () async {
await windowManager.show();
// ensure initial window size to be changed
await windowManager.setSize(kConnectionManagerWindowSize);
await Future.wait([
windowManager.setAlignment(Alignment.topRight),
windowManager.focus(),
windowManager.setOpacity(1)
]);
// ensure
windowManager.setAlignment(Alignment.topRight);
});
}