1+ require 'minitest/autorun'
2+ require_relative '../scripts/sakura_server_user_agent'
3+
4+ class IPValidationTest < Minitest ::Test
5+ def test_valid_ip_addresses
6+ # 正常なIPアドレス
7+ assert SakuraServerUserAgent . valid_ip_address? ( '192.168.1.1' )
8+ assert SakuraServerUserAgent . valid_ip_address? ( '10.0.0.1' )
9+ assert SakuraServerUserAgent . valid_ip_address? ( '153.127.192.200' )
10+ assert SakuraServerUserAgent . valid_ip_address? ( '8.8.8.8' )
11+ end
12+
13+ def test_invalid_ip_addresses
14+ # 無効なIPアドレス
15+ refute SakuraServerUserAgent . valid_ip_address? ( '999.999.999.999' )
16+ refute SakuraServerUserAgent . valid_ip_address? ( 'not.an.ip.address' )
17+ refute SakuraServerUserAgent . valid_ip_address? ( '192.168.1' )
18+ refute SakuraServerUserAgent . valid_ip_address? ( '192.168.1.1.1' )
19+ refute SakuraServerUserAgent . valid_ip_address? ( '' )
20+ refute SakuraServerUserAgent . valid_ip_address? ( nil )
21+ end
22+
23+ def test_normalize_ip_address
24+ # 正規化のテスト
25+ assert_equal '192.168.1.1' , SakuraServerUserAgent . normalize_ip_address ( '192.168.1.1' )
26+ assert_equal '10.0.0.1' , SakuraServerUserAgent . normalize_ip_address ( '10.0.0.1' )
27+
28+ # 無効な入力
29+ assert_nil SakuraServerUserAgent . normalize_ip_address ( '192.168.001.001' ) # ゼロ埋めは無効
30+ assert_nil SakuraServerUserAgent . normalize_ip_address ( 'invalid' )
31+ assert_nil SakuraServerUserAgent . normalize_ip_address ( nil )
32+ assert_nil SakuraServerUserAgent . normalize_ip_address ( '' )
33+ end
34+
35+ def test_edge_cases
36+ # エッジケース
37+ assert SakuraServerUserAgent . valid_ip_address? ( '0.0.0.0' )
38+ assert SakuraServerUserAgent . valid_ip_address? ( '255.255.255.255' )
39+ refute SakuraServerUserAgent . valid_ip_address? ( '256.1.1.1' )
40+ refute SakuraServerUserAgent . valid_ip_address? ( '-1.1.1.1' )
41+ end
42+ end
0 commit comments