1 /*
2  * Copyright (c) 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 /*
25  * @test
26  * @bug 4034428
27  * @summary Test for leading space in values output from properties
28  */
29 
30 package test.java.util.Properties;
31 
32 import java.io.File;
33 import java.io.FileInputStream;
34 import java.io.FileOutputStream;
35 import java.io.IOException;
36 import java.util.Properties;
37 
38 /**
39  * This class tests to see if the properties object saves
40  * leading space in the value of a property as it should
41  * do according to the JLS
42  */
43 public class Save {
44 
main(String argv[])45     public static void main(String argv[]) {
46         int testSucceeded=0;
47         FileOutputStream myOutput;
48 
49         // create a properties object to save
50         Properties myProperties = new Properties();
51         String value = "   spacesfirst";
52         myProperties.put("atest", value);
53 
54         try {
55             // save the object and check output
56             // Android-changed: read/write from/to a temp file.
57             // myOutput = new FileOutputStream("testout");
58             File outputFile = File.createTempFile("testout", "txt");
59             myOutput = new FileOutputStream(outputFile);
60             myProperties.store(myOutput,"A test");
61             myOutput.close();
62 
63             //load the properties set
64             // Android-changed: read from the temp file.
65             // FileInputStream myIn = new FileInputStream("testout");
66             FileInputStream myIn = new FileInputStream(outputFile);
67             Properties myNewProps = new Properties();
68             try {
69                 myNewProps.load(myIn);
70             } finally {
71                 myIn.close();
72             }
73 
74             //check the results
75             String newValue = (String) myNewProps.get("atest");
76             if (!newValue.equals(value))
77                 throw new RuntimeException(
78                     "Properties does not save leading spaces in values correctly.");
79          } catch (IOException e) { //do nothing
80          }
81      }
82 }
83