@@ -48,4 +48,77 @@ static void test_db_url(void)
48
48
ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
49
49
ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
50
50
ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
51
- }
51
+
52
+ //Test a password with special characters.
53
+ i = 2 ;
54
+
55
+ DB_PARSE ("mysql://user:p/a,ss@host:6033/database?parameters" );
56
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
57
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
58
+ ok (!strcmp (db -> password , "p/a,ss" ), "parse_db_url: %d-password: '%s'" , i , db -> password );
59
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
60
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
61
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
62
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
63
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
64
+
65
+ i = 3 ;
66
+
67
+ DB_PARSE ("mysql://user:pa/ss@host:6033/database?parameters" );
68
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
69
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
70
+ ok (!strcmp (db -> password , "pa/ss" ), "parse_db_url: %d-password: '%s'" , i , db -> password );
71
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
72
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
73
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
74
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
75
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
76
+
77
+ i = 4 ;
78
+
79
+ DB_PARSE ("mysql://user@host:6033/database?parameters" );
80
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
81
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
82
+ ok ((db -> password == NULL ), "parse_db_url: %d-password: '%s'" , i , db -> password );
83
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
84
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
85
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
86
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
87
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
88
+
89
+ i = 5 ;
90
+
91
+ DB_PARSE ("mysql://user:p//a!,ss@host:6033/database?parameters" );
92
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
93
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
94
+ ok (!strcmp (db -> password , "p//a!,ss" ), "parse_db_url: %d-password: '%s'" , i , db -> password );
95
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
96
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
97
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
98
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
99
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
100
+
101
+ i = 6 ;
102
+
103
+ DB_PARSE ("mysql://user:pa//ss@host:6033/database?parameters" );
104
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
105
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
106
+ ok (!strcmp (db -> password , "pa//ss" ), "parse_db_url: %d-password: '%s'" , i , db -> password );
107
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
108
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
109
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
110
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
111
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
112
+
113
+ i = 7 ;
114
+
115
+ DB_PARSE ("mysql://user:@host:6033/database?parameters" );
116
+ ok (!strcmp (db -> scheme , "mysql" ), "parse_db_url: %d-schema: '%s'" , i , db -> scheme );
117
+ ok (!strcmp (db -> username , "user" ), "parse_db_url: %d-username: '%s'" , i , db -> username );
118
+ ok (!strcmp (db -> password , "" ), "parse_db_url: %d-password: '%s'" , i , db -> password );
119
+ ok (!strcmp (db -> host , "host" ), "parse_db_url: %d-host: '%s'" , i , db -> host );
120
+ ok ((db -> port == 6033 ), "parse_db_url: %d-port: '%d'" , i , db -> port );
121
+ ok ((db -> unix_socket == NULL ), "parse_db_url: %d-unix_socket: '%s'" , i , db -> unix_socket );
122
+ ok (!strcmp (db -> database , "database" ), "parse_db_url: %d-database: '%s'" , i , db -> database );
123
+ ok (!strcmp (db -> parameters , "parameters" ), "parse_db_url: %d-parameters: '%s'" , i , db -> parameters );
124
+ }
0 commit comments