| package org.apache.harmony.security.tests.java.security; |
| |
| import dalvik.annotation.TestLevel; |
| import dalvik.annotation.TestTargetClass; |
| import dalvik.annotation.TestTargetNew; |
| |
| import junit.framework.TestCase; |
| |
| import java.security.AccessController; |
| import java.security.PrivilegedAction; |
| |
| @TestTargetClass(PrivilegedAction.class) |
| public class PrivilegedActionTest extends TestCase { |
| |
| protected void setUp() throws Exception { |
| super.setUp(); |
| } |
| |
| private class MyPrivilegedAction implements PrivilegedAction<String> { |
| |
| private boolean called=false; |
| public String run() { |
| called = true; |
| return "ok"; |
| } |
| } |
| |
| private class MyPrivilegedAction2 implements PrivilegedAction<String> { |
| |
| private boolean called=false; |
| public String run() { |
| called = true; |
| throw new RuntimeException("fail"); |
| } |
| |
| } |
| |
| @TestTargetNew( |
| level=TestLevel.COMPLETE, |
| method="run" |
| ) |
| public void testRun() { |
| MyPrivilegedAction action = new MyPrivilegedAction(); |
| String result = AccessController.doPrivileged(action); |
| assertEquals("return value not correct", "ok", result); |
| assertTrue("run method was not called", action.called); |
| |
| MyPrivilegedAction2 action2 = new MyPrivilegedAction2(); |
| |
| |
| try { |
| result = AccessController.doPrivileged(action2); |
| fail("exception expected"); |
| } catch (RuntimeException e) { |
| // expected exception |
| } |
| } |
| } |