JDK-8173480.js revision 1871:f9bb37a817b3
1/*
2 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/**
25 * JDK-8173480: in operator should work on java objects and classes
26 *
27 * @test
28 * @run
29 */
30
31var hash = "hash"; // for testing ConsString keys
32
33var obj = new java.lang.Object();
34Assert.assertTrue("hashCode" in obj);
35Assert.assertTrue(hash + "Code" in obj);
36Assert.assertTrue("class" in obj);
37Assert.assertFalse("x" in obj);
38Assert.assertFalse(1 in obj);
39Assert.assertFalse("1" in obj);
40
41var map = new java.util.HashMap();
42map["k"] = true;
43Assert.assertTrue(map["k"]);
44Assert.assertTrue("k" in map);
45Assert.assertTrue("hashCode" in map);
46Assert.assertTrue(hash + "Code" in map);
47Assert.assertTrue("class" in map);
48Assert.assertFalse("x" in map);
49Assert.assertFalse(1 in map);
50Assert.assertFalse("1" in map);
51
52var list = new java.util.ArrayList();
53list.add(true);
54Assert.assertTrue(list[0]);
55Assert.assertTrue(list["0"]);
56Assert.assertTrue(0 in list);
57Assert.assertTrue("0" in list);
58Assert.assertTrue("hashCode" in list);
59Assert.assertTrue(hash + "Code" in list);
60Assert.assertTrue("class" in list);
61Assert.assertFalse("x" in list);
62Assert.assertFalse(1 in list);
63Assert.assertFalse("1" in list);
64
65var objectArray = new (Java.type("java.lang.Object[]"))(1);
66objectArray[0] = true;
67Assert.assertTrue(objectArray[0]);
68Assert.assertTrue(objectArray["0"]);
69Assert.assertTrue(0 in objectArray);
70Assert.assertTrue("0" in objectArray);
71Assert.assertTrue("hashCode" in objectArray);
72Assert.assertTrue(hash + "Code" in objectArray);
73Assert.assertTrue("class" in objectArray);
74Assert.assertFalse("x" in objectArray);
75Assert.assertFalse(1 in objectArray);
76Assert.assertFalse("1" in objectArray);
77
78var RuntimeClass = Java.type("java.lang.Runtime");
79Assert.assertTrue("getRuntime" in RuntimeClass);
80Assert.assertTrue("runtime" in RuntimeClass);
81Assert.assertTrue("class" in RuntimeClass);
82Assert.assertFalse("hashCode" in RuntimeClass);
83Assert.assertFalse(hash + "Code" in RuntimeClass);
84Assert.assertFalse("x" in RuntimeClass);
85Assert.assertFalse(1 in RuntimeClass);
86Assert.assertFalse("1" in RuntimeClass);
87
88