19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 171a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.os; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Broadcaster; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Message; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.MediumTest; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.SmallTest; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class BroadcasterTest extends TestCase { 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int MESSAGE_A = 23234; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int MESSAGE_B = 3; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int MESSAGE_C = 14; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int MESSAGE_D = 95; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test1() throws Exception { 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * One handler requestes one message, with a translation 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new HandlerTester() { 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void go() { 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Broadcaster b = new Broadcaster(); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h = new H(); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, h, MESSAGE_B); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message msg = new Message(); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project msg.what = MESSAGE_A; 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.broadcast(msg); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (msg.what == MESSAGE_B) { 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project success(); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failure(); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static class Tests2and3 extends HandlerTester { 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Tests2and3(int n) { 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project N = n; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler mHandlers[]; 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean mSuccess[]; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void go() { 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Broadcaster b = new Broadcaster(); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandlers = new Handler[N]; 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSuccess = new boolean[N]; 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < N; i++) { 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandlers[i] = new H(); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSuccess[i] = false; 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, mHandlers[i], MESSAGE_B + i); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message msg = new Message(); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project msg.what = MESSAGE_A; 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.broadcast(msg); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int index = msg.what - MESSAGE_B; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (index < 0 || index >= N) { 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failure(); 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (msg.getTarget() == mHandlers[index]) { 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSuccess[index] = true; 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean winner = true; 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < N; i++) { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!mSuccess[i]) { 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project winner = false; 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (winner) { 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project success(); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test2() throws Exception { 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2 handlers request the same message, with different translations 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new Tests2and3(2); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test3() throws Exception { 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 handlers request the same message, with different translations 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new Tests2and3(10); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test4() throws Exception { 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Two handlers request different messages, with translations, sending 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * only one. The other one should never get sent. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new HandlerTester() { 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h1; 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h2; 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void go() { 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Broadcaster b = new Broadcaster(); 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h1 = new H(); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h2 = new H(); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, h1, MESSAGE_C); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_B, h2, MESSAGE_D); 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message msg = new Message(); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project msg.what = MESSAGE_A; 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.broadcast(msg); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (msg.what == MESSAGE_C && msg.getTarget() == h1) { 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project success(); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failure(); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test5() throws Exception { 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Two handlers request different messages, with translations, sending 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * only one. The other one should never get sent. 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new HandlerTester() { 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h1; 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h2; 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void go() { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Broadcaster b = new Broadcaster(); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h1 = new H(); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h2 = new H(); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, h1, MESSAGE_C); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_B, h2, MESSAGE_D); 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message msg = new Message(); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project msg.what = MESSAGE_B; 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.broadcast(msg); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (msg.what == MESSAGE_D && msg.getTarget() == h2) { 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project success(); 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failure(); 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void test6() throws Exception { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Two handlers request same message. Cancel the request for the 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2nd handler, make sure the first still works. 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HandlerTester tester = new HandlerTester() { 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h1; 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler h2; 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void go() { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Broadcaster b = new Broadcaster(); 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h1 = new H(); 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project h2 = new H(); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, h1, MESSAGE_C); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.request(MESSAGE_A, h2, MESSAGE_D); 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.cancelRequest(MESSAGE_A, h2, MESSAGE_D); 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message msg = new Message(); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project msg.what = MESSAGE_A; 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.broadcast(msg); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (msg.what == MESSAGE_C && msg.getTarget() == h1) { 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project success(); 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project failure(); 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tester.doTest(1000); 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 233