diff --git a/flashy_client/lib/home.dart b/flashy_client/lib/home.dart index 21a4dd3..883a76e 100644 --- a/flashy_client/lib/home.dart +++ b/flashy_client/lib/home.dart @@ -27,12 +27,17 @@ class HomeState extends State { int currentIndex = 0; List flashCardList = flashcards; List isSelected = [false, false, false]; + String localIp = ''; + String localPort = ''; - String get ip => widget.prefs?.getString('ip') ?? ''; - String get port => widget.prefs?.getString('port') ?? ''; + String get ip => widget.prefs?.getString('ip') ?? localIp; + String get port => widget.prefs?.getString('port') ?? localPort; - set ip(String ip) => widget.prefs?.setString('ip', ip); - set port(String port) => widget.prefs?.setString('port', port); + set ip(String ip) => + (widget.prefs != null) ? widget.prefs!.setString('ip', ip) : localIp = ip; + set port(String port) => (widget.prefs != null) + ? widget.prefs!.setString('port', port) + : localPort = port; @override void initState() { @@ -143,7 +148,7 @@ class HomeState extends State { body: EditConnectionPage( ip: ip, port: port, - onChanged: (ip, port) async { + onChanged: (ip, port) { setState(() { this.ip = ip; this.port = port; diff --git a/flashy_client/pubspec.lock b/flashy_client/pubspec.lock index 0e58baf..bdb946d 100644 --- a/flashy_client/pubspec.lock +++ b/flashy_client/pubspec.lock @@ -588,7 +588,7 @@ packages: name: test url: "https://pub.dartlang.org" source: hosted - version: "1.17.10" + version: "1.17.12" test_api: dependency: transitive description: @@ -596,6 +596,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.3" + test_core: + dependency: transitive + description: + name: test_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.2" typed_data: dependency: transitive description: @@ -624,6 +631,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "7.3.0" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" webdriver: dependency: transitive description: diff --git a/flashy_client/test/connection_page_test.dart b/flashy_client/test/connection_page_test.dart new file mode 100644 index 0000000..7a8d0f3 --- /dev/null +++ b/flashy_client/test/connection_page_test.dart @@ -0,0 +1,29 @@ +import 'package:flashy_client/home.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets( + 'Test fill out ip/port', + (WidgetTester tester) async { + await tester.pumpWidget(MaterialApp(home: Home())); + await tester.tap(find.byIcon(Icons.swap_vert)); + await tester.pumpAndSettle(); + + const ip = 'testip.com'; + const port = '12345'; + + await tester.enterText(find.byType(TextField).at(0), ip); + await tester.enterText(find.byType(TextField).at(1), port); + await tester.pumpAndSettle(); + + await tester.tap(find.byType(ElevatedButton)); + await tester.pumpAndSettle(); + + expect(tester.widget(find.byType(TextField).at(0)).controller?.text, ip); + expect(tester.widget(find.byType(TextField).at(1)).controller?.text, port); + expect(tester.state(find.byType(Home)).ip, ip); + expect(tester.state(find.byType(Home)).port, port); + }, + ); +} diff --git a/flashy_client/test/edit_test.dart b/flashy_client/test/edit_page_test.dart similarity index 100% rename from flashy_client/test/edit_test.dart rename to flashy_client/test/edit_page_test.dart diff --git a/flashy_client/test/memorize_test.dart b/flashy_client/test/memorize_page_test.dart similarity index 100% rename from flashy_client/test/memorize_test.dart rename to flashy_client/test/memorize_page_test.dart