1package org.apache.harmony.security.tests.java.security;
2
3import junit.framework.TestCase;
4
5import java.security.AccessController;
6import java.security.PrivilegedAction;
7
8public class PrivilegedActionTest extends TestCase {
9
10    protected void setUp() throws Exception {
11        super.setUp();
12    }
13
14    private class MyPrivilegedAction implements PrivilegedAction<String> {
15
16        private boolean called=false;
17        public String run() {
18            called = true;
19            return "ok";
20        }
21    }
22
23    private class MyPrivilegedAction2 implements PrivilegedAction<String> {
24
25        private boolean called=false;
26        public String run() {
27            called = true;
28            throw new RuntimeException("fail");
29        }
30
31    }
32
33    public void testRun() {
34        MyPrivilegedAction action = new MyPrivilegedAction();
35        String result = AccessController.doPrivileged(action);
36        assertEquals("return value not correct", "ok", result);
37        assertTrue("run method was not called", action.called);
38
39        MyPrivilegedAction2 action2 = new MyPrivilegedAction2();
40
41
42        try {
43            result = AccessController.doPrivileged(action2);
44            fail("exception expected");
45        } catch (RuntimeException e) {
46            // expected exception
47        }
48    }
49}
50