Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/imageio/WriteAbortTest.java
41144 views
1
/*
2
* Copyright (c) 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
* @bug 8164931
27
* @summary Test verifies that if we call ImageWriter.abort() in
28
* IIOWriteProgressListener.imageStarted() or
29
* IIOWriteProgressListener.imageProgress() are we
30
* calling IIOWriteProgressListener.readAborted() for all readers.
31
* @run main WriteAbortTest
32
*/
33
import java.awt.image.BufferedImage;
34
import java.io.File;
35
import javax.imageio.ImageIO;
36
import javax.imageio.stream.ImageInputStream;
37
import java.awt.Color;
38
import java.awt.Graphics2D;
39
import java.nio.file.Files;
40
import javax.imageio.ImageWriter;
41
import javax.imageio.event.IIOWriteProgressListener;
42
import javax.imageio.stream.ImageOutputStream;
43
44
public class WriteAbortTest implements IIOWriteProgressListener {
45
46
ImageWriter writer = null;
47
ImageOutputStream ios = null;
48
BufferedImage bimg = null;
49
File file;
50
boolean startAbort = false;
51
boolean startAborted = false;
52
boolean progressAbort = false;
53
boolean progressAborted = false;
54
Color srccolor = Color.red;
55
int width = 100;
56
int heght = 100;
57
58
public WriteAbortTest(String format) throws Exception {
59
try {
60
System.out.println("Test for format " + format);
61
bimg = new BufferedImage(width, heght,
62
BufferedImage.TYPE_INT_RGB);
63
64
Graphics2D g = bimg.createGraphics();
65
g.setColor(srccolor);
66
g.fillRect(0, 0, width, heght);
67
g.dispose();
68
69
file = File.createTempFile("src_", "." + format, new File("."));
70
ImageInputStream ios = ImageIO.createImageOutputStream(file);
71
72
ImageWriter writer =
73
ImageIO.getImageWritersByFormatName(format).next();
74
75
writer.setOutput(ios);
76
writer.addIIOWriteProgressListener(this);
77
78
// Abort writing in IIOWriteProgressListener.imageStarted().
79
startAbort = true;
80
writer.write(bimg);
81
startAbort = false;
82
83
// Abort writing in IIOWriteProgressListener.imageProgress().
84
progressAbort = true;
85
writer.write(bimg);
86
progressAbort = false;
87
88
ios.close();
89
/*
90
* All abort requests from imageStarted,imageProgress
91
* from IIOWriteProgressListener should be reached
92
* otherwise throw RuntimeException.
93
*/
94
if (!(startAborted
95
&& progressAborted)) {
96
throw new RuntimeException("All IIOWriteProgressListener abort"
97
+ " requests are not processed for format "
98
+ format);
99
}
100
} finally {
101
Files.delete(file.toPath());
102
}
103
}
104
105
/*
106
* Abstract methods that we need to implement from
107
* IIOWriteProgressListener, and relevant for this test case.
108
*/
109
@Override
110
public void imageStarted(ImageWriter source, int imageIndex) {
111
System.out.println("imageStarted called");
112
if (startAbort) {
113
source.abort();
114
}
115
}
116
117
@Override
118
public void imageProgress(ImageWriter source, float percentageDone) {
119
System.out.println("imageProgress called");
120
if (progressAbort) {
121
source.abort();
122
}
123
}
124
125
@Override
126
public void writeAborted(ImageWriter source) {
127
System.out.println("writeAborted called");
128
// Verify IIOWriteProgressListener.imageStarted() abort request.
129
if (startAbort) {
130
System.out.println("imageStarted aborted ");
131
startAborted = true;
132
}
133
134
// Verify IIOWriteProgressListener.imageProgress() abort request.
135
if (progressAbort) {
136
System.out.println("imageProgress aborted ");
137
progressAborted = true;
138
}
139
}
140
141
public static void main(String args[]) throws Exception {
142
final String[] formats = {"bmp", "png", "gif", "jpg", "tif"};
143
for (String format : formats) {
144
new WriteAbortTest(format);
145
}
146
}
147
148
/*
149
* Remaining abstract methods that we need to implement from
150
* IIOWriteProgressListener, but not relevant for this test case.
151
*/
152
@Override
153
public void imageComplete(ImageWriter source) {
154
}
155
156
@Override
157
public void thumbnailStarted(ImageWriter source, int imageIndex,
158
int thumbnailIndex) {
159
}
160
161
@Override
162
public void thumbnailProgress(ImageWriter source, float percentageDone) {
163
}
164
165
@Override
166
public void thumbnailComplete(ImageWriter source) {
167
}
168
}
169
170
171