1 /*
2  * Copyright (c) 2010, 2016, 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  * @test
26  * @key headful
27  * @bug 6195901 6195923 6195928 6195933 6491273 6888734
28  * @summary No SecurityException should be thrown when printing to a file
29             using the given policy.
30             Print to file option should be selected.
31  * @run main/othervm/policy=policy SecurityDialogTest
32  */
33 import java.awt.*;
34 import java.awt.event.*;
35 import java.util.*;
36 import java.io.*;
37 
38 
39 public class SecurityDialogTest extends Frame implements ActionListener {
40     // Declare things used in the test, like buttons and labels here
41 
42     Button nativeDlg, setSecurity;
43         boolean isNative = true;
44 
SecurityDialogTest()45     public SecurityDialogTest() {
46 
47         nativeDlg = new Button("Print Dialog");
48         nativeDlg.addActionListener(this);
49         setSecurity = new Button("Toggle Dialog");
50         setSecurity.addActionListener(this);
51         add("South", nativeDlg);
52         add("North", setSecurity);
53         setSize(300, 300);
54         setVisible(true);
55     }
56 
main(String args[])57     public static void main(String args[]) {
58         System.out.println("Native dialog is the default");
59         SecurityDialogTest test = new SecurityDialogTest();
60     }
61 
actionPerformed(ActionEvent e)62     public void actionPerformed(ActionEvent e) {
63 
64         if (e.getSource() == setSecurity) {
65             if (isNative) {
66                 isNative = false;
67                 System.out.println("Common dialog is the default");
68 
69             } else {
70                 isNative = true;
71                 System.out.println("Native dialog is the default");
72             }
73             return;
74         }
75 
76         JobAttributes  ja = new JobAttributes();
77         PageAttributes pa = new PageAttributes();
78 
79         if (isNative) {
80             ja.setDialog(JobAttributes.DialogType.NATIVE);
81         } else {
82             ja.setDialog(JobAttributes.DialogType.COMMON);
83         }
84         ja.setDestination(JobAttributes.DestinationType.FILE);
85         ja.setFileName("mohan.ps");
86 
87 
88         PrintJob pjob = getToolkit().getPrintJob(this, null, ja, pa);
89 
90         if (pjob != null) {
91             Graphics pg = pjob.getGraphics();
92             System.out.println("PJOB: " + pjob);
93             if (pg != null) {
94                 System.out.println("Printer Graphics: " + pg);
95                 this.printAll(pg);
96                 pg.dispose();
97             } else {
98                 System.out.println("Printer Graphics is null");
99             }
100             pjob.end();
101             System.out.println("DONE");
102         } else {
103             System.out.println("PJOB is null");
104         }
105     }
106 }
107