From 99236f06d5fd36e37c1d02ee2e945ec6c4d6f6b8 Mon Sep 17 00:00:00 2001 From: abhishek-beforepay Date: Tue, 1 Sep 2026 11:28:43 +1000 Subject: [PATCH] add tests for proxy --- test/flutter_system_proxy_test.dart | 100 ++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 7 deletions(-) diff --git a/test/flutter_system_proxy_test.dart b/test/flutter_system_proxy_test.dart index 203d4af..f3b7f2e 100644 --- a/test/flutter_system_proxy_test.dart +++ b/test/flutter_system_proxy_test.dart @@ -1,20 +1,106 @@ +import 'dart:io'; + import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_system_proxy/flutter_system_proxy.dart'; void main() { const MethodChannel channel = MethodChannel('flutter_system_proxy'); TestWidgetsFlutterBinding.ensureInitialized(); - setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) async { - return '42'; - }); - }); - tearDown(() { channel.setMockMethodCallHandler(null); }); - test('getSystemProxy', () async {}); + group('getSystemProxy', () { + setUp(() { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return '42'; + }); + }); + + test('getSystemProxy', () async {}); + }); + + group('findProxyFromEnvironment', () { + test('returns PROXY string when host and port are valid', () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': '127.0.0.1', 'port': '8080'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com/v1:drop'); + + expect(result, 'PROXY 127.0.0.1:8080'); + }); + + test('falls back to HttpClient.findProxyFromEnvironment when host is empty', + () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': '', 'port': '8080'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com'); + + expect(result, + HttpClient.findProxyFromEnvironment(Uri.parse('https://example.com'))); + }); + + test('falls back to HttpClient.findProxyFromEnvironment when host is null', + () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': null, 'port': '8080'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com'); + + expect(result, + HttpClient.findProxyFromEnvironment(Uri.parse('https://example.com'))); + }); + + test( + 'falls back to HttpClient.findProxyFromEnvironment when port is invalid', + () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': '127.0.0.1', 'port': 'not-a-port'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com'); + + expect(result, + HttpClient.findProxyFromEnvironment(Uri.parse('https://example.com'))); + }); + + test( + 'falls back to HttpClient.findProxyFromEnvironment when port is out of range', + () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': '127.0.0.1', 'port': '70000'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com'); + + expect(result, + HttpClient.findProxyFromEnvironment(Uri.parse('https://example.com'))); + }); + + test( + 'falls back to HttpClient.findProxyFromEnvironment when port is out of range', + () async { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return {'host': '127.0.0.1', 'port': '70000'}; + }); + + final result = + await FlutterSystemProxy.findProxyFromEnvironment('https://example.com/v1:drop'); + + expect(result, + HttpClient.findProxyFromEnvironment(Uri.parse('https://example.com/v1:drop'))); + }); + }); }