Initial commit: Accessible SSH Terminal
This commit is contained in:
44
test/ansi_parser_test.dart
Normal file
44
test/ansi_parser_test.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:accessible_terminal/ui/widgets/ansi_text_parser.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
void main() {
|
||||
group('AnsiTextParser', () {
|
||||
test('strip removes CSI ANSI color codes', () {
|
||||
const input = '\x1B[31mRed Text\x1B[0m';
|
||||
final result = AnsiTextParser.strip(input);
|
||||
expect(result, equals('Red Text'));
|
||||
});
|
||||
|
||||
test('strip removes OSC sequences (Window Title)', () {
|
||||
const input = '\x1B]0;My Title\x07Content';
|
||||
final result = AnsiTextParser.strip(input);
|
||||
expect(result, equals('Content'));
|
||||
});
|
||||
|
||||
test('strip removes OSC sequences with ST terminator', () {
|
||||
const input = '\x1B]0;My Title\x1B\\Content';
|
||||
final result = AnsiTextParser.strip(input);
|
||||
expect(result, equals('Content'));
|
||||
});
|
||||
|
||||
test('strip removes mixed sequences', () {
|
||||
const input = 'Normal \x1B[1mBold\x1B[0m \x1B]0;Hidden\x07Text';
|
||||
final result = AnsiTextParser.strip(input);
|
||||
expect(result, equals('Normal Bold Text'));
|
||||
});
|
||||
|
||||
test('parse handles OSC sequences by ignoring them (discarding)', () {
|
||||
final parser = AnsiTextParser();
|
||||
const input = '\x1B]0;Title\x07Visible';
|
||||
final span = parser.parse(input);
|
||||
expect(span.toPlainText(), equals('Visible'));
|
||||
});
|
||||
|
||||
test('strip removes control characters', () {
|
||||
const input = 'Clean\x00\x08Me'; // Null and Backspace
|
||||
final result = AnsiTextParser.strip(input);
|
||||
expect(result, equals('CleanMe'));
|
||||
});
|
||||
});
|
||||
}
|
||||
22
test/widget_test.dart
Normal file
22
test/widget_test.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
// This is a basic Flutter widget test.
|
||||
//
|
||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
||||
// utility in the flutter_test package. For example, you can send tap and scroll
|
||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
||||
// tree, read text, and verify that the values of widget properties are correct.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:accessible_terminal/main.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets('Terminal screen smoke test', (WidgetTester tester) async {
|
||||
// Build our app and trigger a frame.
|
||||
await tester.pumpWidget(const ProviderScope(child: MyApp()));
|
||||
|
||||
// Verify that the connection view is shown (initial state).
|
||||
expect(find.text('Connections'), findsOneWidget);
|
||||
expect(find.text('Create New Connection'), findsOneWidget);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user