22
22
import static org .assertj .core .api .Assertions .assertThat ;
23
23
24
24
public class UserRequestParserTest {
25
+ static final String HEADER_NAME = "X-LB-SSL" ;
25
26
26
27
@ Test
27
28
public void parse () {
28
29
UserRequestParser parser = new UserRequestParser ();
29
30
String value = "t=1625212448369 D=123" ;
30
- ProxyRequestHeader proxyHttpHeader = parser .parseHeader (" HEADER_NAME" , value );
31
+ ProxyRequestHeader proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
31
32
assertThat (proxyHttpHeader .isValid ()).isTrue ();
32
33
assertThat (1625212448369L ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
33
34
assertThat (123L ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
34
- assertThat ("HEADER_NAME" ).isEqualTo (proxyHttpHeader .getApp ());
35
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
36
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
37
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
38
+
39
+ // apache
40
+ final long currentTimeMillis = System .currentTimeMillis ();
41
+ value = "t=" + currentTimeMillis + "999" + " D=12345" ;
42
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
43
+ assertThat (proxyHttpHeader .isValid ()).isTrue ();
44
+ assertThat (currentTimeMillis ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
45
+ assertThat (12345 ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
46
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
47
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
48
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
49
+
50
+ // nginx
51
+ value = "t=1504248328.423 D=0.123" ;
52
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
53
+ assertThat (proxyHttpHeader .isValid ()).isTrue ();
54
+ assertThat (1504248328423L ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
55
+ assertThat (123000L ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
56
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
35
57
assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
36
58
assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
37
59
}
@@ -40,10 +62,31 @@ public void parse() {
40
62
public void parseOnlyReceivedTime () {
41
63
UserRequestParser parser = new UserRequestParser ();
42
64
String value = "t=1625212448369" ;
43
- ProxyRequestHeader proxyHttpHeader = parser .parseHeader (" HEADER_NAME" , value );
65
+ ProxyRequestHeader proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
44
66
assertThat (proxyHttpHeader .isValid ()).isTrue ();
45
67
assertThat (1625212448369L ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
46
68
assertThat (-1 ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
69
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
70
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
71
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
72
+
73
+ // apache
74
+ final long currentTimeMillis = System .currentTimeMillis ();
75
+ value = "t=" + currentTimeMillis + "999" ;
76
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
77
+ assertThat (currentTimeMillis ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
78
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
79
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
80
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
81
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
82
+
83
+ // nginx
84
+ value = "t=1504248328.423" ;
85
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
86
+ assertThat (proxyHttpHeader .isValid ()).isTrue ();
87
+ assertThat (1504248328423L ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
88
+ assertThat (-1 ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
89
+ assertThat (HEADER_NAME ).isEqualTo (proxyHttpHeader .getApp ());
47
90
assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
48
91
assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
49
92
}
@@ -52,26 +95,35 @@ public void parseOnlyReceivedTime() {
52
95
public void parseNotFoundReceived () {
53
96
UserRequestParser parser = new UserRequestParser ();
54
97
String value = "D=123" ;
55
- ProxyRequestHeader proxyHttpHeader = parser .parseHeader (" HEADER_NAME" , value );
98
+ ProxyRequestHeader proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
56
99
assertThat (proxyHttpHeader .isValid ()).isFalse ();
57
100
}
58
101
59
- @ Test
60
- public void parseReceivedSeconds () {
61
- UserRequestParser parser = new UserRequestParser ();
62
- String value = "t=1625212448.369" ;
63
- ProxyRequestHeader proxyHttpHeader = parser .parseHeader ("HEADER_NAME" , value );
64
- assertThat (1625212448369L ).isEqualTo (proxyHttpHeader .getReceivedTimeMillis ());
65
- assertThat (-1 ).isEqualTo (proxyHttpHeader .getDurationTimeMicroseconds ());
66
- assertThat (-1 ).isEqualTo (proxyHttpHeader .getIdlePercent ());
67
- assertThat (-1 ).isEqualTo (proxyHttpHeader .getBusyPercent ());
68
- }
69
-
70
102
@ Test
71
103
public void parseInvalidReceived () {
72
104
UserRequestParser parser = new UserRequestParser ();
73
105
String value = "t=1625212448:369" ;
74
- ProxyRequestHeader proxyHttpHeader = parser .parseHeader ("HEADER_NAME" , value );
106
+ ProxyRequestHeader proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
107
+ assertThat (proxyHttpHeader .isValid ()).isFalse ();
108
+
109
+ value = "t=alpha-1625212448369" ;
110
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
111
+ assertThat (proxyHttpHeader .isValid ()).isFalse ();
112
+
113
+ value = "t=-1625212448369" ;
114
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
115
+ assertThat (proxyHttpHeader .isValid ()).isFalse ();
116
+
117
+ value = "t=1000" ;
118
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
119
+ assertThat (proxyHttpHeader .isValid ()).isFalse ();
120
+
121
+ value = "t=-16252124483691784578975972957897594795479379" ;
122
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
123
+ assertThat (proxyHttpHeader .isValid ()).isFalse ();
124
+
125
+ value = "t=123.456" ;
126
+ proxyHttpHeader = parser .parseHeader (HEADER_NAME , value );
75
127
assertThat (proxyHttpHeader .isValid ()).isFalse ();
76
128
}
77
129
}
0 commit comments