1 /*
2  * Copyright (c) 2000, 2018, 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   test
25   @bug 4185854
26   @summary Checks that constructors do not accept nulls and throw NPE
27   @run applet ConstructorsNullTest.html
28 */
29 
30 // Note there is no @ in front of test above.  This is so that the
31 //  harness will not mistake this file as a test file.  It should
32 //  only see the html file as a test file. (the harness runs all
33 //  valid test files, so it would run this test twice if this file
34 //  were valid as well as the html file.)
35 // Also, note the area= after Your Name in the author tag.  Here, you
36 //  should put which functional area the test falls in.  See the
37 //  AWT-core home page -> test areas and/or -> AWT team  for a list of
38 //  areas.
39 // Note also the 'ConstructorsNullTest.html' in the run tag.  This should
40 //  be changed to the name of the test.
41 
42 
43 /**
44  * ConstructorsNullTest.java
45  *
46  * summary:
47  */
48 
49 import java.applet.Applet;
50 import java.awt.*;
51 import java.awt.image.*;
52 import java.awt.color.*;
53 
54 
55 //Automated tests should run as applet tests if possible because they
56 // get their environments cleaned up, including AWT threads, any
57 // test created threads, and any system resources used by the test
58 // such as file descriptors.  (This is normally not a problem as
59 // main tests usually run in a separate VM, however on some platforms
60 // such as the Mac, separate VMs are not possible and non-applet
61 // tests will cause problems).  Also, you don't have to worry about
62 // synchronisation stuff in Applet tests they way you do in main
63 // tests...
64 
65 
66 public class ConstructorsNullTest extends Applet
67  {
68    //Declare things used in the test, like buttons and labels here
69 
init()70    public void init()
71     {
72       //Create instructions for the user here, as well as set up
73       // the environment -- set the layout manager, add buttons,
74       // etc.
75 
76       this.setLayout (new BorderLayout ());
77 
78     }//End  init()
79 
start()80    public void start ()
81     {
82       //Get things going.  Request focus, set size, et cetera
83       setSize (200,200);
84       show();
85 
86       ColorConvertOp gp;
87       boolean passed = false;
88       try {
89           gp = new ColorConvertOp((ColorSpace)null, (RenderingHints)null);
90       } catch (NullPointerException e) {
91           try {
92               gp = new ColorConvertOp((ColorSpace)null, null, null);
93           } catch (NullPointerException e1) {
94               try {
95                   gp = new ColorConvertOp((ICC_Profile[])null, null);
96               } catch (NullPointerException e2) {
97                   passed = true;
98               }
99           }
100       }
101 
102       if (!passed) {
103           System.out.println("Test FAILED: one of constructors didn't throw NullPointerException.");
104           throw new RuntimeException("Test FAILED: one of constructors didn't throw NullPointerException.");
105       }
106       System.out.println("Test PASSED: all constructors threw NullPointerException.");
107 
108       //What would normally go into main() will probably go here.
109       //Use System.out.println for diagnostic messages that you want
110       //to read after the test is done.
111       //Use System.out.println for messages you want the tester to read.
112 
113     }// start()
114 
115  }// class ConstructorsNullTest
116