// Path: pie-core/src/main/java/com/coverity/security/pie/core/PieConfig.java
// public class PieConfig {
// 
//     private final Properties properties = new Properties();
// 
//     public PieConfig() {
//         loadProps(this.getClass().getClassLoader().getResource("pieConfig.default.properties"));
//         File propFile = new File("pieConfig.properties");
//         if (propFile.exists()) {
//             try {
//                 loadProps(propFile.toURI().toURL());
//             } catch (MalformedURLException e) {
//                 throw new RuntimeException(e);
//             }
//         } else {
//             loadProps(this.getClass().getClassLoader().getResource("pieConfig.properties"));
//         }
//     }
//     public PieConfig(URL propertiesUrl) {
//         loadProps(this.getClass().getClassLoader().getResource("pieConfig.default.properties"));
//         loadProps(propertiesUrl);
//     }
//     private void loadProps(URL propertiesUrl) {
//         if (propertiesUrl != null) {
//             InputStream is = null;
//             try {
//                 is = propertiesUrl.openStream();
//                 if (is != null) {
//                     properties.load(is);
//                     is.close();
//                 }
//             } catch (IOException e) {
//                 IOUtil.closeSilently(is);
//                 throw new RuntimeException(e);
//             }
//         }
// 
//     }
// 
//     public Properties getProperties() {
//         return properties;
//     }
// 
//     private boolean getBoolean(String prop, boolean defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Boolean.parseBoolean(v);
//     }
// 
//     private String getProperty(String name) {
//         return properties.getProperty("pie." + name);
//     }
// 
//     public boolean isEnabled() {
//         return getBoolean("enabled", true);
//     }
// 
//     public boolean isRegenerateOnShutdown() {
//         return getBoolean("regenerateOnShutdown", true);
//     }
// 
//     public boolean isAdminInterfaceEnabled() {
//         return getBoolean("admininterface.enabled", false);
//     }
// 
//     public boolean isLoggingEnabled() { return getBoolean("loggingEnabled", false); }
// 
//     public String getLogPath() { return getProperty("logPath"); }
// }
// 
// Path: pie-core/src/main/java/com/coverity/security/pie/core/PolicyConfig.java
// public class PolicyConfig {
//     private final String name;
//     private final PieConfig pieConfig;
//     
//     public PolicyConfig(String name, PieConfig pieConfig) {
//         this.name = name;
//         this.pieConfig = pieConfig;
//     }
//     
//     public boolean isEnabled() {
//         return getBoolean("isEnabled", true);
//     }
//     
//     public boolean isReportOnlyMode() {
//         return getBoolean("isReportOnlyMode", true);
//     }
// 
//     public boolean isCollapseEnabled() {
//         return getBoolean("isCollapseEnabled", true);
//     }
//     
//     public URL getPolicyFile() {
//         String policyFile = getProperty("policyFile");
//         if (policyFile != null) {
//             try {
//                 return new URL(policyFile);
//             } catch (MalformedURLException e) {
//                 throw new IllegalStateException("Invalid policy URL: " + policyFile);
//             }
//         }
//         URL resource = this.getClass().getClassLoader().getResource(name + ".policy");
//         if (resource != null) {
//             return resource;
//         }
//         String catalinaHome = System.getProperty("catalina.home");
//         if (catalinaHome != null) {
//             try {
//                 return new File(catalinaHome + File.separatorChar + "conf" + File.separatorChar + name + ".policy").toURI().toURL();
//             } catch (MalformedURLException e) {
//                 throw new IllegalStateException("Could not build default policy file path.");
//             }
//         }
//         
//         // Default to file in the CWD
//         try {
//             return new File(name + ".policy").toURI().toURL();
//         } catch (MalformedURLException e) {
//             throw new RuntimeException(e);
//         }
//     }
//     
//     public boolean getBoolean(String prop, boolean defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Boolean.parseBoolean(v);
//     }
//     public int getInteger(String prop, int defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Integer.parseInt(v);
//     }
//     
//     
//     public String getProperty(String name) {
//         return pieConfig.getProperties().getProperty(this.name + "." + name);
//     }
// }


import com.coverity.security.pie.core.PieConfig;
import com.coverity.security.pie.core.PolicyConfig;
import org.testng.annotations.Test;
import java.security.Permission;
import java.security.ProtectionDomain;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
package com.coverity.security.pie.policy.securitymanager;




public class DynamicJavaPolicyTest {

    @Test
    public void testSetSecurityManagerDenied() {
        PieConfig pieConfig = new PieConfig();
        SecurityManagerPolicy policy = new SecurityManagerPolicy();
// Path: pie-core/src/main/java/com/coverity/security/pie/core/PieConfig.java
// public class PieConfig {
// 
//     private final Properties properties = new Properties();
// 
//     public PieConfig() {
//         loadProps(this.getClass().getClassLoader().getResource("pieConfig.default.properties"));
//         File propFile = new File("pieConfig.properties");
//         if (propFile.exists()) {
//             try {
//                 loadProps(propFile.toURI().toURL());
//             } catch (MalformedURLException e) {
//                 throw new RuntimeException(e);
//             }
//         } else {
//             loadProps(this.getClass().getClassLoader().getResource("pieConfig.properties"));
//         }
//     }
//     public PieConfig(URL propertiesUrl) {
//         loadProps(this.getClass().getClassLoader().getResource("pieConfig.default.properties"));
//         loadProps(propertiesUrl);
//     }
//     private void loadProps(URL propertiesUrl) {
//         if (propertiesUrl != null) {
//             InputStream is = null;
//             try {
//                 is = propertiesUrl.openStream();
//                 if (is != null) {
//                     properties.load(is);
//                     is.close();
//                 }
//             } catch (IOException e) {
//                 IOUtil.closeSilently(is);
//                 throw new RuntimeException(e);
//             }
//         }
// 
//     }
// 
//     public Properties getProperties() {
//         return properties;
//     }
// 
//     private boolean getBoolean(String prop, boolean defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Boolean.parseBoolean(v);
//     }
// 
//     private String getProperty(String name) {
//         return properties.getProperty("pie." + name);
//     }
// 
//     public boolean isEnabled() {
//         return getBoolean("enabled", true);
//     }
// 
//     public boolean isRegenerateOnShutdown() {
//         return getBoolean("regenerateOnShutdown", true);
//     }
// 
//     public boolean isAdminInterfaceEnabled() {
//         return getBoolean("admininterface.enabled", false);
//     }
// 
//     public boolean isLoggingEnabled() { return getBoolean("loggingEnabled", false); }
// 
//     public String getLogPath() { return getProperty("logPath"); }
// }
// 
// Path: pie-core/src/main/java/com/coverity/security/pie/core/PolicyConfig.java
// public class PolicyConfig {
//     private final String name;
//     private final PieConfig pieConfig;
//     
//     public PolicyConfig(String name, PieConfig pieConfig) {
//         this.name = name;
//         this.pieConfig = pieConfig;
//     }
//     
//     public boolean isEnabled() {
//         return getBoolean("isEnabled", true);
//     }
//     
//     public boolean isReportOnlyMode() {
//         return getBoolean("isReportOnlyMode", true);
//     }
// 
//     public boolean isCollapseEnabled() {
//         return getBoolean("isCollapseEnabled", true);
//     }
//     
//     public URL getPolicyFile() {
//         String policyFile = getProperty("policyFile");
//         if (policyFile != null) {
//             try {
//                 return new URL(policyFile);
//             } catch (MalformedURLException e) {
//                 throw new IllegalStateException("Invalid policy URL: " + policyFile);
//             }
//         }
//         URL resource = this.getClass().getClassLoader().getResource(name + ".policy");
//         if (resource != null) {
//             return resource;
//         }
//         String catalinaHome = System.getProperty("catalina.home");
//         if (catalinaHome != null) {
//             try {
//                 return new File(catalinaHome + File.separatorChar + "conf" + File.separatorChar + name + ".policy").toURI().toURL();
//             } catch (MalformedURLException e) {
//                 throw new IllegalStateException("Could not build default policy file path.");
//             }
//         }
//         
//         // Default to file in the CWD
//         try {
//             return new File(name + ".policy").toURI().toURL();
//         } catch (MalformedURLException e) {
//             throw new RuntimeException(e);
//         }
//     }
//     
//     public boolean getBoolean(String prop, boolean defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Boolean.parseBoolean(v);
//     }
//     public int getInteger(String prop, int defaultValue) {
//         String v = getProperty(prop);
//         if (v == null) {
//             return defaultValue;
//         }
//         return Integer.parseInt(v);
//     }
//     
//     
//     public String getProperty(String name) {
//         return pieConfig.getProperties().getProperty(this.name + "." + name);
//     }
// }


// Path: pie-sm/src/test/java/com/coverity/security/pie/policy/securitymanager/DynamicJavaPolicyTest.java
import com.coverity.security.pie.core.PieConfig;
import com.coverity.security.pie.core.PolicyConfig;
import org.testng.annotations.Test;
import java.security.Permission;
import java.security.ProtectionDomain;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;

package com.coverity.security.pie.policy.securitymanager;




public class DynamicJavaPolicyTest {

    @Test
    public void testSetSecurityManagerDenied() {
        PieConfig pieConfig = new PieConfig();
        SecurityManagerPolicy policy = new SecurityManagerPolicy();
        PolicyConfig policyConfig = new PolicyConfig(policy.getName(), pieConfig);