20
20
import static org .mockito .Mockito .when ;
21
21
22
22
import androidx .test .ext .junit .runners .AndroidJUnit4 ;
23
+ import com .google .firebase .FirebaseOptions ;
23
24
import com .google .firebase .heartbeatinfo .HeartBeatInfo ;
24
25
import com .google .firebase .inject .Provider ;
25
26
import com .google .firebase .platforminfo .UserAgentPublisher ;
@@ -33,19 +34,30 @@ public class FirebaseClientGrpcMetadataProviderTest {
33
34
private Provider <HeartBeatInfo > mockHeartBeatProvider = mock (Provider .class );
34
35
private UserAgentPublisher mockUserAgent = mock (UserAgentPublisher .class );
35
36
private HeartBeatInfo mockHeartBeat = mock (HeartBeatInfo .class );
37
+ private FirebaseOptions options =
38
+ new FirebaseOptions .Builder ()
39
+ .setApplicationId ("app_id" )
40
+ .setApiKey ("apikey" )
41
+ .setProjectId ("projectid" )
42
+ .build ();
43
+
36
44
private static final Metadata .Key <String > HEART_BEAT_HEADER =
37
45
Metadata .Key .of ("x-firebase-client-log-type" , Metadata .ASCII_STRING_MARSHALLER );
38
46
39
47
private static final Metadata .Key <String > USER_AGENT_HEADER =
40
48
Metadata .Key .of ("x-firebase-client" , Metadata .ASCII_STRING_MARSHALLER );
41
49
50
+ private static final Metadata .Key <String > GMP_APP_ID_HEADER =
51
+ Metadata .Key .of ("x-firebase-gmpid" , Metadata .ASCII_STRING_MARSHALLER );
52
+
42
53
@ Test
43
54
public void noUpdateWhenBothNullProvider () {
44
55
Metadata metadata = new Metadata ();
45
56
when (mockUserAgentProvider .get ()).thenReturn (null );
46
57
when (mockHeartBeatProvider .get ()).thenReturn (null );
47
58
GrpcMetadataProvider metadataProvider =
48
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
59
+ new FirebaseClientGrpcMetadataProvider (
60
+ mockUserAgentProvider , mockHeartBeatProvider , options );
49
61
metadataProvider .updateMetadata (metadata );
50
62
assertThat (metadata .keys ().size ()).isEqualTo (0 );
51
63
}
@@ -56,7 +68,8 @@ public void noUpdateWhenHeartbeatNullProvider() {
56
68
when (mockUserAgentProvider .get ()).thenReturn (mockUserAgent );
57
69
when (mockHeartBeatProvider .get ()).thenReturn (null );
58
70
GrpcMetadataProvider metadataProvider =
59
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
71
+ new FirebaseClientGrpcMetadataProvider (
72
+ mockUserAgentProvider , mockHeartBeatProvider , options );
60
73
metadataProvider .updateMetadata (metadata );
61
74
assertThat (metadata .keys ().size ()).isEqualTo (0 );
62
75
}
@@ -67,7 +80,8 @@ public void noUpdateWhenUserAgentNullProvider() {
67
80
when (mockUserAgentProvider .get ()).thenReturn (null );
68
81
when (mockHeartBeatProvider .get ()).thenReturn (mockHeartBeat );
69
82
GrpcMetadataProvider metadataProvider =
70
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
83
+ new FirebaseClientGrpcMetadataProvider (
84
+ mockUserAgentProvider , mockHeartBeatProvider , options );
71
85
metadataProvider .updateMetadata (metadata );
72
86
assertThat (metadata .keys ().size ()).isEqualTo (0 );
73
87
}
@@ -80,11 +94,13 @@ public void updateHeaderWhenHBCodeisGlobalHeartBeat() {
80
94
when (mockHeartBeat .getHeartBeatCode (any ())).thenReturn (HeartBeatInfo .HeartBeat .GLOBAL );
81
95
when (mockUserAgent .getUserAgent ()).thenReturn ("foo:1.2.1" );
82
96
GrpcMetadataProvider metadataProvider =
83
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
97
+ new FirebaseClientGrpcMetadataProvider (
98
+ mockUserAgentProvider , mockHeartBeatProvider , options );
84
99
metadataProvider .updateMetadata (metadata );
85
- assertThat (metadata .keys ().size ()).isEqualTo (2 );
100
+ assertThat (metadata .keys ().size ()).isEqualTo (3 );
86
101
assertThat (metadata .get (HEART_BEAT_HEADER )).isEqualTo ("2" );
87
102
assertThat (metadata .get (USER_AGENT_HEADER )).isEqualTo ("foo:1.2.1" );
103
+ assertThat (metadata .get (GMP_APP_ID_HEADER )).isEqualTo ("app_id" );
88
104
}
89
105
90
106
@ Test
@@ -95,11 +111,13 @@ public void updateHeaderWhenHBCodeisSDKHeartBeat() {
95
111
when (mockHeartBeat .getHeartBeatCode (any ())).thenReturn (HeartBeatInfo .HeartBeat .SDK );
96
112
when (mockUserAgent .getUserAgent ()).thenReturn ("foo:1.2.1" );
97
113
GrpcMetadataProvider metadataProvider =
98
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
114
+ new FirebaseClientGrpcMetadataProvider (
115
+ mockUserAgentProvider , mockHeartBeatProvider , options );
99
116
metadataProvider .updateMetadata (metadata );
100
- assertThat (metadata .keys ().size ()).isEqualTo (2 );
117
+ assertThat (metadata .keys ().size ()).isEqualTo (3 );
101
118
assertThat (metadata .get (HEART_BEAT_HEADER )).isEqualTo ("1" );
102
119
assertThat (metadata .get (USER_AGENT_HEADER )).isEqualTo ("foo:1.2.1" );
120
+ assertThat (metadata .get (GMP_APP_ID_HEADER )).isEqualTo ("app_id" );
103
121
}
104
122
105
123
@ Test
@@ -110,11 +128,13 @@ public void updateHeaderWhenHBCodeisCombinedHeartBeat() {
110
128
when (mockHeartBeat .getHeartBeatCode (any ())).thenReturn (HeartBeatInfo .HeartBeat .COMBINED );
111
129
when (mockUserAgent .getUserAgent ()).thenReturn ("foo:1.2.1" );
112
130
GrpcMetadataProvider metadataProvider =
113
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
131
+ new FirebaseClientGrpcMetadataProvider (
132
+ mockUserAgentProvider , mockHeartBeatProvider , options );
114
133
metadataProvider .updateMetadata (metadata );
115
- assertThat (metadata .keys ().size ()).isEqualTo (2 );
134
+ assertThat (metadata .keys ().size ()).isEqualTo (3 );
116
135
assertThat (metadata .get (HEART_BEAT_HEADER )).isEqualTo ("3" );
117
136
assertThat (metadata .get (USER_AGENT_HEADER )).isEqualTo ("foo:1.2.1" );
137
+ assertThat (metadata .get (GMP_APP_ID_HEADER )).isEqualTo ("app_id" );
118
138
}
119
139
120
140
@ Test
@@ -125,8 +145,24 @@ public void noUpdateHeaderWhenHBCodeisZero() {
125
145
when (mockHeartBeat .getHeartBeatCode (any ())).thenReturn (HeartBeatInfo .HeartBeat .NONE );
126
146
when (mockUserAgent .getUserAgent ()).thenReturn ("foo:1.2.1" );
127
147
GrpcMetadataProvider metadataProvider =
128
- new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider );
148
+ new FirebaseClientGrpcMetadataProvider (
149
+ mockUserAgentProvider , mockHeartBeatProvider , options );
129
150
metadataProvider .updateMetadata (metadata );
130
151
assertThat (metadata .keys ().size ()).isEqualTo (0 );
131
152
}
153
+
154
+ @ Test
155
+ public void noGmpAppIdWhenOptionsAreNull () {
156
+ Metadata metadata = new Metadata ();
157
+ when (mockUserAgentProvider .get ()).thenReturn (mockUserAgent );
158
+ when (mockHeartBeatProvider .get ()).thenReturn (mockHeartBeat );
159
+ when (mockHeartBeat .getHeartBeatCode (any ())).thenReturn (HeartBeatInfo .HeartBeat .SDK );
160
+ when (mockUserAgent .getUserAgent ()).thenReturn ("foo:1.2.1" );
161
+ GrpcMetadataProvider metadataProvider =
162
+ new FirebaseClientGrpcMetadataProvider (mockUserAgentProvider , mockHeartBeatProvider , null );
163
+ metadataProvider .updateMetadata (metadata );
164
+ assertThat (metadata .keys ().size ()).isEqualTo (2 );
165
+ assertThat (metadata .get (HEART_BEAT_HEADER )).isEqualTo ("1" );
166
+ assertThat (metadata .get (USER_AGENT_HEADER )).isEqualTo ("foo:1.2.1" );
167
+ }
132
168
}
0 commit comments