Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.PathUtil;
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
import com.intellij.util.xmlb.XmlSerializer;
import com.jetbrains.lang.dart.DartBundle;
import com.jetbrains.lang.dart.analytics.Analytics;
import com.jetbrains.lang.dart.analytics.AnalyticsConstants;
import com.jetbrains.lang.dart.ide.runner.server.ui.DartWebdevConfigurationEditorForm;
import org.jdom.Attribute;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -62,7 +62,7 @@ public DartWebdevConfiguration clone() {

@Override
public @Nullable String suggestedName() {
// Attempt to compute the relative path to the html file, i.e. some "web/index.html"
// Attempt to compute the relative path to the HTML file, i.e. some "web/index.html"
// If not successful, return at least the file name, i.e. some "index.html"
final String htmlFilePath = myParameters.getHtmlFilePath();
String htmlFilePathRelativeFromWorkingDir = null;
Expand All @@ -84,7 +84,13 @@ public DartWebdevConfiguration clone() {
@Override
public void writeExternal(@NotNull Element element) throws WriteExternalException {
super.writeExternal(element);
XmlSerializer.serializeInto(myParameters, element, new SkipDefaultValuesSerializationFilters());
Element serializedState = XmlSerializer.serialize(myParameters);
if (serializedState != null) {
for (Attribute attribute : serializedState.getAttributes()) {
element.setAttribute(attribute.getName(), attribute.getValue());
}
element.addContent(serializedState.cloneContent());
}
Comment thread
juan-mora-google marked this conversation as resolved.
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.jetbrains.lang.dart.ide.runner.server.webdev;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.testFramework.fixtures.BasePlatformTestCase;
import org.jdom.Element;

public class DartWebdevConfigurationTest extends BasePlatformTestCase {

public void testSerializationAndDeserialization() {
ConfigurationFactory myFactory = DartWebdevConfigurationType.getInstance().getConfigurationFactories()[0];

DartWebdevConfiguration myOriginalConfig = new DartWebdevConfiguration(getProject(), myFactory, "TestConfig");
myOriginalConfig.getParameters().setHtmlFilePath("web/index.html");

Element myElement = new Element("configuration");
myOriginalConfig.writeExternal(myElement);

DartWebdevConfiguration myRestoredConfig = new DartWebdevConfiguration(getProject(), myFactory, "TestConfig");
myRestoredConfig.readExternal(myElement);

assertEquals("web/index.html", myRestoredConfig.getParameters().getHtmlFilePath());
}
}
Loading