Skip to content

Commit 29179ae

Browse files
committed
Organize members into some logical order
1 parent a991bbb commit 29179ae

File tree

1 file changed

+47
-56
lines changed

1 file changed

+47
-56
lines changed

binder/src/test/java/io/grpc/binder/RobolectricBinderSecurityTest.java

Lines changed: 47 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import static org.robolectric.Shadows.shadowOf;
2323

2424
import android.app.Application;
25-
import android.content.ComponentName;
2625
import androidx.test.core.app.ApplicationProvider;
2726
import com.google.common.util.concurrent.Futures;
2827
import com.google.common.util.concurrent.ListenableFuture;
@@ -58,13 +57,57 @@ public final class RobolectricBinderSecurityTest {
5857
private static final String SERVICE_NAME = "fake_service";
5958
private static final String FULL_METHOD_NAME = "fake_service/fake_method";
6059
private final Application context = ApplicationProvider.getApplicationContext();
61-
private AndroidComponentAddress listenAddress;
60+
private final ArrayBlockingQueue<SettableFuture<Status>> statusesToSet =
61+
new ArrayBlockingQueue<>(128);
6262
private ManagedChannel channel;
63+
private Server server;
6364

6465
@Before
6566
public void setUp() {
66-
listenAddress =
67+
AndroidComponentAddress listenAddress =
6768
AndroidComponentAddress.forRemoteComponent(context.getPackageName(), "HostService");
69+
70+
MethodDescriptor<Empty, Empty> methodDesc = getMethodDescriptor();
71+
ServerCallHandler<Empty, Empty> callHandler =
72+
ServerCalls.asyncUnaryCall(
73+
(req, respObserver) -> {
74+
respObserver.onNext(req);
75+
respObserver.onCompleted();
76+
});
77+
ServerMethodDefinition<Empty, Empty> methodDef =
78+
ServerMethodDefinition.create(methodDesc, callHandler);
79+
ServerServiceDefinition def =
80+
ServerServiceDefinition.builder(SERVICE_NAME).addMethod(methodDef).build();
81+
82+
IBinderReceiver binderReceiver = new IBinderReceiver();
83+
server =
84+
BinderServerBuilder.forAddress(listenAddress, binderReceiver)
85+
.addService(def)
86+
.securityPolicy(
87+
ServerSecurityPolicy.newBuilder()
88+
.servicePolicy(
89+
SERVICE_NAME,
90+
new AsyncSecurityPolicy() {
91+
@Override
92+
public ListenableFuture<Status> checkAuthorizationAsync(int uid) {
93+
SettableFuture<Status> status = SettableFuture.create();
94+
statusesToSet.add(status);
95+
return status;
96+
}
97+
})
98+
.build())
99+
.build();
100+
try {
101+
server.start();
102+
} catch (IOException e) {
103+
throw new IllegalStateException(e);
104+
}
105+
106+
shadowOf(context)
107+
.setComponentNameAndServiceForBindServiceForIntent(
108+
listenAddress.asBindIntent(),
109+
listenAddress.getComponent(),
110+
checkNotNull(binderReceiver.get()));
68111
channel =
69112
BinderChannelBuilder.forAddress(listenAddress, context)
70113
.build();
@@ -73,6 +116,7 @@ public void setUp() {
73116
@After
74117
public void tearDown() {
75118
channel.shutdownNow();
119+
server.shutdownNow();
76120
}
77121

78122
@Test
@@ -121,57 +165,4 @@ private static MethodDescriptor<Empty, Empty> getMethodDescriptor() {
121165
.setSampledToLocalTracing(true)
122166
.build();
123167
}
124-
125-
private final IBinderReceiver binderReceiver = new IBinderReceiver();
126-
private final ArrayBlockingQueue<SettableFuture<Status>> statusesToSet =
127-
new ArrayBlockingQueue<>(128);
128-
private Server server;
129-
130-
@Before
131-
public void setupServer() {
132-
MethodDescriptor<Empty, Empty> methodDesc = getMethodDescriptor();
133-
ServerCallHandler<Empty, Empty> callHandler =
134-
ServerCalls.asyncUnaryCall(
135-
(req, respObserver) -> {
136-
respObserver.onNext(req);
137-
respObserver.onCompleted();
138-
});
139-
ServerMethodDefinition<Empty, Empty> methodDef =
140-
ServerMethodDefinition.create(methodDesc, callHandler);
141-
ServerServiceDefinition def =
142-
ServerServiceDefinition.builder(SERVICE_NAME).addMethod(methodDef).build();
143-
144-
server =
145-
BinderServerBuilder.forAddress(listenAddress, binderReceiver)
146-
.addService(def)
147-
.securityPolicy(
148-
ServerSecurityPolicy.newBuilder()
149-
.servicePolicy(
150-
SERVICE_NAME,
151-
new AsyncSecurityPolicy() {
152-
@Override
153-
public ListenableFuture<Status> checkAuthorizationAsync(int uid) {
154-
SettableFuture<Status> status = SettableFuture.create();
155-
statusesToSet.add(status);
156-
return status;
157-
}
158-
})
159-
.build())
160-
.build();
161-
try {
162-
server.start();
163-
} catch (IOException e) {
164-
throw new IllegalStateException(e);
165-
}
166-
167-
ComponentName componentName = new ComponentName(context, "SomeService");
168-
shadowOf(context)
169-
.setComponentNameAndServiceForBindService(
170-
componentName, checkNotNull(binderReceiver.get()));
171-
}
172-
173-
@After
174-
public void tearDownServer() {
175-
server.shutdownNow();
176-
}
177168
}

0 commit comments

Comments
 (0)