Skip to content

Commit

Permalink
Added dns and reverse dns tests
Browse files Browse the repository at this point in the history
  • Loading branch information
git-elliot committed Jan 18, 2025
1 parent 8b1526d commit f100957
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 2 deletions.
4 changes: 4 additions & 0 deletions integration_test/app_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import 'package:integration_test/integration_test.dart';
import 'package:vernet/main.dart';
import 'package:vernet/ui/adaptive/adaptive_list.dart';

import 'dns/lookup/lookup_test.dart' as lookup_test;
import 'dns/reverse_lookup/reverse_lookup.dart' as reverse_lookup;
import 'network_troubleshooting_test/ping_test/ping_test.dart' as ping_test;
import 'wifi_test/wifi_test_runner.dart' as wifi_test_runner;

Expand All @@ -21,4 +23,6 @@ void main() {
});
wifi_test_runner.main();
ping_test.main();
lookup_test.main();
reverse_lookup.main();
}
42 changes: 42 additions & 0 deletions integration_test/dns/lookup/lookup_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:vernet/main.dart';
import 'package:vernet/ui/adaptive/adaptive_list.dart';
import 'package:vernet/values/keys.dart';
import 'package:vernet/values/strings.dart';

void main() {
group('Dns lookup integration test', () {
testWidgets('tap on the DNS lookup button, verify lookup ended',
(tester) async {
// Load app widget.
await tester.pumpWidget(const MyApp(true));
await tester.pumpAndSettle();

// Verify that there are 4 widgets at homepage
expect(find.bySubtype<AdaptiveListTile>(), findsAtLeastNWidgets(4));

// Finds the scan for devices button to tap on.
final lookupButton = find.byKey(WidgetKey.dnsLookupButton.key);

// Emulate a tap on the button.
await tester.tap(lookupButton);
await tester.pumpAndSettle();

expect(find.text(StringValue.dnsLookupEmptyPlaceholder), findsOneWidget);

await tester.enterText(
find.byType(TextFormField),
'google.com',
);
await tester.pumpAndSettle();

final submitButton = find.byKey(WidgetKey.basePageSubmitButton.key);
await tester.tap(submitButton);

await tester.pumpAndSettle(const Duration(seconds: 2));

expect(find.byType(AdaptiveListTile), findsExactly(3));
});
});
}
44 changes: 44 additions & 0 deletions integration_test/dns/reverse_lookup/reverse_lookup.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:vernet/main.dart';
import 'package:vernet/ui/adaptive/adaptive_list.dart';
import 'package:vernet/values/keys.dart';
import 'package:vernet/values/strings.dart';

void main() {
group('Reverse DNS lookup integration test', () {
testWidgets('tap on the reverse DNS lookup button, verify lookup ended',
(tester) async {
// Load app widget.
await tester.pumpWidget(const MyApp(true));
await tester.pumpAndSettle();

// Verify that there are 4 widgets at homepage
expect(find.bySubtype<AdaptiveListTile>(), findsAtLeastNWidgets(4));

// Finds the scan for devices button to tap on.
final reverseDnsLookupButton =
find.byKey(WidgetKey.reverseDnsLookupButton.key);

// Emulate a tap on the button.
await tester.tap(reverseDnsLookupButton);
await tester.pumpAndSettle();

expect(find.text(StringValue.reverseDnsLookupEmptyPlaceholder),
findsOneWidget);

await tester.enterText(
find.byType(TextFormField),
'172.217.160.142',
);
await tester.pumpAndSettle();

final submitButton = find.byKey(WidgetKey.basePageSubmitButton.key);
await tester.tap(submitButton);

await tester.pumpAndSettle(const Duration(seconds: 2));

expect(find.text("maa03s29-in-f14.1e100.net"), findsOne);
});
});
}
3 changes: 2 additions & 1 deletion lib/pages/dns/dns_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:vernet/pages/base_page.dart';
import 'package:vernet/ui/adaptive/adaptive_list.dart';
import 'package:vernet/values/strings.dart';

class DNSPage extends StatefulWidget {
const DNSPage({super.key});
Expand All @@ -20,7 +21,7 @@ class _DNSPageState extends BasePage<DNSPage> {
return _addresses.isEmpty
? const Center(
child: Text(
'No addresses found yet.\nAll addresses will appear here.',
StringValue.dnsLookupEmptyPlaceholder,
textAlign: TextAlign.center,
),
)
Expand Down
3 changes: 2 additions & 1 deletion lib/pages/dns/reverse_dns_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:vernet/pages/base_page.dart';
import 'package:vernet/values/strings.dart';

class ReverseDNSPage extends StatefulWidget {
const ReverseDNSPage({super.key});
Expand All @@ -23,7 +24,7 @@ class _ReverseDNSPageState extends BasePage<ReverseDNSPage> {
if (_address == null) {
return const Center(
child: Text(
'Host name not found yet.\nHost name will appear here.',
StringValue.reverseDnsLookupEmptyPlaceholder,
textAlign: TextAlign.center,
),
);
Expand Down
2 changes: 2 additions & 0 deletions lib/pages/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ class _WifiDetailState extends State<HomePage> {
Row(
children: [
ElevatedButton.icon(
key: WidgetKey.dnsLookupButton.key,
onPressed: () {
Navigator.push(
context,
Expand All @@ -272,6 +273,7 @@ class _WifiDetailState extends State<HomePage> {
),
const SizedBox(width: 10),
ElevatedButton.icon(
key: WidgetKey.reverseDnsLookupButton.key,
onPressed: () {
Navigator.push(
context,
Expand Down
2 changes: 2 additions & 0 deletions lib/values/keys.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ enum WidgetKey implements Comparable<WidgetKey> {
rangePortScanRadioButton('rangePortScanRadioButton'),
singlePortScanRadioButton('singlePortScanRadioButton'),
scanForOpenPortsButton('scanForOpenPortsButton'),
reverseDnsLookupButton('reverseDnsLookupButton'),
pingSummaryTotalTime('pingSummaryTotalTime'),
scanForDevicesButton('scanForDevicesButton'),
basePageSubmitButton('basePageSubmitButton'),
Expand All @@ -13,6 +14,7 @@ enum WidgetKey implements Comparable<WidgetKey> {
veryShortPortChip('veryShortPortChip'),
rescanIconButton('rescanIconButton'),
pingSummarySent('pingSummarySent'),
dnsLookupButton('dnsLookupButton'),
portScanButton('portScanButton'),
cloudflareChip('cloudflareChip'),
knownPortChip('knownPortChip'),
Expand Down
4 changes: 4 additions & 0 deletions lib/values/strings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,8 @@ class StringValue {
static const String hostScanPageTitle = 'Scan for devices';
static const String loadingDevicesMessage =
'Searching for devices in your local network';
static const String dnsLookupEmptyPlaceholder =
'No addresses found yet.\nAll addresses will appear here.';
static const String reverseDnsLookupEmptyPlaceholder =
'Host name not found yet.\nHost name will appear here.';
}

0 comments on commit f100957

Please sign in to comment.