< prev index next >

test/jdk/java/lang/invoke/DropLookupModeTest.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 104,144 **** lookup = lookup.dropLookupMode(PUBLIC); assertTrue(lookup.lookupClass() == lc); assertTrue(lookup.lookupModes() == 0); } /** ! * Test dropLookupMode on the public Lookup. */ ! public void testPublicLookup() { ! final Lookup publicLookup = MethodHandles.publicLookup(); ! final Class<?> lc = publicLookup.lookupClass(); ! assertTrue(publicLookup.lookupModes() == (PUBLIC|UNCONDITIONAL)); ! ! Lookup lookup = publicLookup.dropLookupMode(PRIVATE); ! assertTrue(lookup.lookupClass() == lc); ! assertTrue(lookup.lookupModes() == PUBLIC); ! ! lookup = publicLookup.dropLookupMode(PROTECTED); ! assertTrue(lookup.lookupClass() == lc); ! assertTrue(lookup.lookupModes() == PUBLIC); ! ! lookup = publicLookup.dropLookupMode(PACKAGE); ! assertTrue(lookup.lookupClass() == lc); ! assertTrue(lookup.lookupModes() == PUBLIC); ! ! lookup = publicLookup.dropLookupMode(MODULE); ! assertTrue(lookup.lookupClass() == lc); ! assertTrue(lookup.lookupModes() == PUBLIC); ! ! lookup = publicLookup.dropLookupMode(PUBLIC); ! assertTrue(lookup.lookupClass() == lc); assertTrue(lookup.lookupModes() == 0); ! lookup = publicLookup.dropLookupMode(UNCONDITIONAL); ! assertTrue(lookup.lookupClass() == lc); ! assertTrue(lookup.lookupModes() == PUBLIC); } @DataProvider(name = "badInput") public Object[][] badInput() { return new Object[][] { --- 104,146 ---- lookup = lookup.dropLookupMode(PUBLIC); assertTrue(lookup.lookupClass() == lc); assertTrue(lookup.lookupModes() == 0); } + @DataProvider(name = "unconditionals") + public Object[][] unconditionals() { + Lookup publicLookup = MethodHandles.publicLookup(); + return new Object[][] { + { publicLookup, Object.class }, + { publicLookup.in(String.class), String.class }, + { publicLookup.in(DropLookupModeTest.class), DropLookupModeTest.class }, + }; + } + /** ! * Test dropLookupMode on the lookup with public lookup ! * and UNCONDITIONAL */ ! @Test(dataProvider = "unconditionals") ! public void testUnconditionalLookup(Lookup unconditionalLookup, Class<?> expected) { ! assertTrue(unconditionalLookup.lookupModes() == UNCONDITIONAL); ! ! assertPublicLookup(unconditionalLookup.dropLookupMode(PRIVATE), expected); ! assertPublicLookup(unconditionalLookup.dropLookupMode(PROTECTED), expected); ! assertPublicLookup(unconditionalLookup.dropLookupMode(PACKAGE), expected); ! assertPublicLookup(unconditionalLookup.dropLookupMode(MODULE), expected); ! assertPublicLookup(unconditionalLookup.dropLookupMode(PUBLIC), expected); ! ! // drop all access ! Lookup lookup = unconditionalLookup.dropLookupMode(UNCONDITIONAL); ! assertTrue(lookup.lookupClass() == expected); assertTrue(lookup.lookupModes() == 0); + } ! private void assertPublicLookup(Lookup lookup, Class<?> expected) { ! assertTrue(lookup.lookupClass() == expected); ! assertTrue(lookup.lookupModes() == UNCONDITIONAL); } @DataProvider(name = "badInput") public Object[][] badInput() { return new Object[][] {
< prev index next >