mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-09 08:09:39 +07:00
66 lines
2.4 KiB
Java
66 lines
2.4 KiB
Java
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
|
package com.intellij.xdebugger;
|
|
|
|
import com.intellij.configurationStore.XmlSerializer;
|
|
import com.intellij.testFramework.PlatformLiteFixture;
|
|
import com.intellij.util.xmlb.annotations.Attribute;
|
|
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
|
|
import com.intellij.xdebugger.impl.settings.XDebuggerSettingManagerImpl;
|
|
import com.intellij.xdebugger.settings.XDebuggerSettings;
|
|
import com.intellij.xdebugger.settings.XDebuggerSettingsManager;
|
|
import org.jdom.Element;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public class XDebuggerSettingsTest extends PlatformLiteFixture {
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
initApplication();
|
|
registerExtensionPoint(XDebuggerSettingManagerImpl.getSettingsEP(), XDebuggerSettings.class);
|
|
registerExtension(XDebuggerSettingManagerImpl.getSettingsEP(), new MyDebuggerSettings());
|
|
getApplication().registerService(XDebuggerUtil.class, XDebuggerUtilImpl.class);
|
|
getApplication().registerService(XDebuggerSettingsManager.class, XDebuggerSettingManagerImpl.class);
|
|
}
|
|
|
|
public void testSerialize() {
|
|
XDebuggerSettingManagerImpl settingsManager = XDebuggerSettingManagerImpl.getInstanceImpl();
|
|
|
|
MyDebuggerSettings settings = MyDebuggerSettings.getInstance();
|
|
assertNotNull(settings);
|
|
settings.myOption = "239";
|
|
|
|
Element element = XmlSerializer.serialize(settingsManager.getState());
|
|
//System.out.println(JDOMUtil.writeElement(element, SystemProperties.getLineSeparator()));
|
|
|
|
settings.myOption = "42";
|
|
assertSame(settings, MyDebuggerSettings.getInstance());
|
|
|
|
settingsManager.loadState(com.intellij.configurationStore.XmlSerializer.deserialize(element, XDebuggerSettingManagerImpl.SettingsState.class));
|
|
assertSame(settings, MyDebuggerSettings.getInstance());
|
|
assertEquals("239", settings.myOption);
|
|
}
|
|
|
|
public static class MyDebuggerSettings extends XDebuggerSettings<MyDebuggerSettings> {
|
|
@Attribute("option")
|
|
public String myOption;
|
|
|
|
public MyDebuggerSettings() {
|
|
super("test");
|
|
}
|
|
|
|
public static MyDebuggerSettings getInstance() {
|
|
return getInstance(MyDebuggerSettings.class);
|
|
}
|
|
|
|
@Override
|
|
public MyDebuggerSettings getState() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public void loadState(@NotNull final MyDebuggerSettings state) {
|
|
myOption = state.myOption;
|
|
}
|
|
}
|
|
}
|