⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preferencecommontest.java

📁 portal越来越流行了
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        // Everything is OK.
        if (setOccured && resetOccured) {
        	result.setReturnCode(TestResult.PASSED);
        }
        // Error occurred when setting or storing preferences.
        else if (!setOccured) {
        	result.setReturnCode(TestResult.WARNING);
        	result.setResultMessage("A function upon which the reset test "
        			+ "depends failed to execute as expected. "
        			+ "Check the other test results in this test suite.");
        }
        // Error occurred when resetting preference.
        else {
        	result.setReturnCode(TestResult.FAILED);
        	result.setResultMessage("Preferences value was not successfully reset after store");
        }
        return result;
    }

    protected TestResult checkResetPreferenceWithoutDefault(PortletRequest request) {
    	TestResult result = new TestResult();
        result.setDescription("Ensure preferences are properly reset (removed) "
        		+ "when the default value is not defined.");
        result.setSpecPLT("14.1");

        PortletPreferences preferences = request.getPreferences();
        boolean setOccured = false;
        boolean resetOccured = false;

        try {
        	// Set preference value to overwrite the original (null).
            preferences.setValue(BOGUS_KEY, NEW_VALUE);
            String value = preferences.getValue(BOGUS_KEY, DEF_VALUE);
            if (NEW_VALUE.equals(value)) {
                setOccured = true;
            }
            // Reset preference value to null.
            preferences.reset(BOGUS_KEY);
            value =  preferences.getValue(BOGUS_KEY, DEF_VALUE);
            if (DEF_VALUE.equals(value)) {
                resetOccured = true;
            }
        } catch (ReadOnlyException ex) {
        	TestUtils.failOnException("Unable to set preference value.", ex, result);
        	return result;
        }

        // Everything is OK.
        if (setOccured && resetOccured) {
        	result.setReturnCode(TestResult.PASSED);
        }
        // Error occurred when setting or storing preferences.
        else if (!setOccured) {
        	result.setReturnCode(TestResult.WARNING);
        	result.setResultMessage("A function upon which the reset test "
        			+ "depends failed to execute as expected. "
        			+ "Check the other test results in this test suite.");
        }
        // Error occurred when resetting preference value.
        else {
        	result.setReturnCode(TestResult.FAILED);
        	result.setResultMessage("Preferences value was not successfully "
        			+ "reset after store.");
        }
        return result;
    }

    protected TestResult checkModifyReadOnlyPreferences(PortletRequest request) {
        TestResult result = new TestResult();
        result.setDescription("Ensure that setValue() / setValues() / reset() "
        		+ "methods throw ReadOnlyException when invoked "
        		+ "on read-only preferences.");
        result.setSpecPLT("14.1");

        PortletPreferences preferences = request.getPreferences();
        if (!preferences.isReadOnly(READ_ONLY_PREF_NAME)) {
        	result.setReturnCode(TestResult.WARNING);
        	result.setResultMessage("Preference " + READ_ONLY_PREF_NAME
        			+ " is not a read-only preference. "
        			+ "This may be due to misconfiuration.");
        	return result;
        }

        boolean setValueOK = false;
        boolean setValuesOK = false;
        boolean resetOK = false;

        // Check setValue() method.
        try {
            preferences.setValue(READ_ONLY_PREF_NAME, "written");
        } catch (ReadOnlyException ex) {
            setValueOK = true;
        }

        // Check setValues() method.
        try {
        	preferences.setValues(READ_ONLY_PREF_NAME, new String[] { "written" });
        } catch (ReadOnlyException ex) {
        	setValuesOK = true;
        }

        // Check reset() method.
        try {
        	preferences.reset(READ_ONLY_PREF_NAME);
        } catch (ReadOnlyException ex) {
        	resetOK = true;
        }

        if (setValueOK && setValuesOK && resetOK) {
        	result.setReturnCode(TestResult.PASSED);
        } else {
        	result.setReturnCode(TestResult.FAILED);
        	StringBuffer buffer = new StringBuffer();
        	if (!setValueOK) {
        		buffer.append("setValue(..), ");
        	}
        	if (!setValuesOK) {
        		buffer.append("setValues(..), ");
        	}
        	if (!resetOK) {
        		buffer.append("reset(..), ");
        	}
        	result.setResultMessage("Method(s) [" + buffer.toString()
        			+ "] invoked on read-only preference (" + READ_ONLY_PREF_NAME
        			+ ") without ReadOnlyException.");
        }
        return result;
    }

    protected TestResult checkGetPreferenceNames(PortletRequest request) {
        TestResult result = new TestResult();
        result.setDescription("Ensure returned enumeration is valid.");
        result.setSpecPLT("14.1");

        PortletPreferences preferences = request.getPreferences();
        Map<String, String[]> prefMap = preferences.getMap();
        boolean hasAll = true;
        for (Enumeration<String> en = preferences.getNames(); 
        		en.hasMoreElements(); ) {
            if (!prefMap.containsKey(en.nextElement())) {
                hasAll = false;
                break;
            }
        }

        if (hasAll) {
        	result.setReturnCode(TestResult.PASSED);
        } else {
        	result.setReturnCode(TestResult.FAILED);
        	result.setResultMessage("At least one name is not found "
        			+ "in the preference map.");
        }
        return result;
    }

    /**
     * FIXME:
     */
    protected TestResult checkGetPreferenceMap(PortletRequest request) {
        TestResult result = checkGetPreferenceNames(request);
        result.setDescription("Ensure returned map is valid.");
        result.setSpecPLT("14.1");
        return result;
    }

    /**
     * Check (xci) SPEC 91, PLT 14.1: Preferences values are not modified
     * if the values in the Map are altered.
     */
    protected TestResult checkPreferenceValueNotModified(PortletRequest request) {
    	TestResult result = new TestResult();
    	result.setDescription("Preferences values are not modified if "
    			+ "the values in the returned preference Map are altered.");
    	result.setSpecPLT("14.1");

    	PortletPreferences preferences = request.getPreferences();
        if (LOG.isDebugEnabled()) {
        	LOG.debug("Original Preferences:");
        	logPreferences(preferences);
        }

        // Modify the returned preference map.
    	Map<String, String[]> prefMap = preferences.getMap();
    	String[] values = (String[]) prefMap.get(PREF_NAME);
    	String originalValue = null;
    	String modifiedValue = "Value modified in preferences map.";
    	if (values != null && values.length == 1) {
    		originalValue = values[0];
    		values[0] = modifiedValue;
    	}

    	// Check if the value held by portlet preferences is modified.
        if (LOG.isDebugEnabled()) {
        	LOG.debug("Modified Preferences:");
        	logPreferences(preferences);
        }
    	String newValue = preferences.getValue(PREF_NAME, DEF_VALUE);
    	if (newValue != null && newValue.equals(originalValue)) {
    		result.setReturnCode(TestResult.PASSED);
    	} else {
    		result.setReturnCode(TestResult.FAILED);
    		result.setResultMessage("Preference value modified according to "
    				+ "the preference map.");
    	}
    	return result;
    }


    // Debug Methods -----------------------------------------------------------


    /**
     * Logs out the portlet preferences.
     * @param preferences  PortletPreferences to log.
     */
    protected void logPreferences(PortletPreferences preferences) {
    	StringBuffer buffer = new StringBuffer();
    	Map<String, String[]> map = preferences.getMap();
    	for (String key : map.keySet()) {
    		String[] values = (String[]) map.get(key);
    		buffer.append(key).append("=");
    		if (values != null) {
    			buffer.append("{");
    			for (int i = 0; i < values.length; i++) {
    				buffer.append(values[i]);
    				if (i < values.length - 1) {
    					buffer.append(",");
    				}
    			}
    			buffer.append("}");
    		} else {
    			// Spec allows null values.
    			buffer.append("NULL");
    		}
    		buffer.append(";");
    	}
    	LOG.debug("PortletPreferences: " + buffer.toString());
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -