11package net .seesharpsoft .intellij .plugins .csv .editor ;
22
3+ import com .intellij .ide .impl .convert .JDomConvertingUtil ;
34import com .intellij .openapi .editor .EditorSettings ;
4- import com .intellij .openapi .fileEditor .FileEditor ;
5- import com .intellij .openapi .fileEditor .FileEditorPolicy ;
6- import com .intellij .openapi .fileEditor .FileEditorProvider ;
7- import com .intellij .openapi .fileEditor .TextEditor ;
5+ import com .intellij .openapi .fileEditor .*;
86import com .intellij .openapi .fileEditor .ex .FileEditorProviderManager ;
7+ import com .intellij .openapi .fileEditor .impl .text .TextEditorState ;
8+ import com .intellij .openapi .util .JDOMUtil ;
99import com .intellij .testFramework .fixtures .LightCodeInsightFixtureTestCase ;
10+ import org .jetbrains .jps .model .serialization .JDomSerializationUtil ;
1011
1112public class CsvFileEditorTest extends LightCodeInsightFixtureTestCase {
1213
@@ -18,11 +19,11 @@ protected String getTestDataPath() {
1819 @ Override
1920 protected void setUp () throws Exception {
2021 super .setUp ();
21- }
2222
23- public void testCsvFileEditorProviderIsAvailableAndHasCorrectNameAndPolicy () {
2423 myFixture .configureByFiles ("AnyFile.csv" );
24+ }
2525
26+ public void testCsvFileEditorProviderIsAvailableAndHasCorrectNameAndPolicy () {
2627 FileEditorProvider [] fileEditorProviders = FileEditorProviderManager .getInstance ().getProviders (myFixture .getProject (), myFixture .getFile ().getVirtualFile ());
2728 assertEquals (1 , fileEditorProviders .length );
2829 assertInstanceOf (fileEditorProviders [0 ], CsvFileEditorProvider .class );
@@ -38,8 +39,6 @@ private void disposeTextEditor(FileEditor fileEditor) {
3839 }
3940
4041 public void testCsvEditorIsTextEditorWithInitialCsvEditorSettings () {
41- myFixture .configureByFiles ("AnyFile.csv" );
42-
4342 FileEditorProvider [] fileEditorProviders = FileEditorProviderManager .getInstance ().getProviders (myFixture .getProject (), myFixture .getFile ().getVirtualFile ());
4443 FileEditor fileEditor = fileEditorProviders [0 ].createEditor (myFixture .getProject (), myFixture .getFile ().getVirtualFile ());
4544 assertInstanceOf (fileEditor , TextEditor .class );
@@ -60,8 +59,6 @@ private TextEditor getCurrentTextEditor() {
6059 }
6160
6261 public void testCsvEditorSettingsAreApplied () {
63- myFixture .configureByFiles ("AnyFile.csv" );
64-
6562 CsvEditorSettingsExternalizable csvEditorSettingsExternalizable = CsvEditorSettingsExternalizable .getInstance ();
6663 csvEditorSettingsExternalizable .setCaretRowShown (false );
6764 csvEditorSettingsExternalizable .setUseSoftWraps (true );
@@ -74,5 +71,19 @@ public void testCsvEditorSettingsAreApplied() {
7471
7572 disposeTextEditor (textEditor );
7673 }
74+
75+ public void testCsvEditorStateReadsAndWritesStates () {
76+ TextEditor textEditor = getCurrentTextEditor ();
77+
78+ FileEditorProvider [] fileEditorProviders = FileEditorProviderManager .getInstance ().getProviders (myFixture .getProject (), myFixture .getFile ().getVirtualFile ());
79+ CsvFileEditorProvider fileEditorProvider = (CsvFileEditorProvider )fileEditorProviders [0 ];
7780
81+ FileEditorState state = fileEditorProvider .readState (JDomConvertingUtil .createComponentElement (JDomSerializationUtil .COMPONENT_ELEMENT ), this .getProject (), this .getFile ().getVirtualFile ());
82+ assertInstanceOf (state , TextEditorState .class );
83+ textEditor .setState (state );
84+ fileEditorProvider .writeState (state , this .getProject (), JDomConvertingUtil .createComponentElement (JDomSerializationUtil .COMPONENT_ELEMENT ));
85+
86+ disposeTextEditor (textEditor );
87+ }
88+
7889}
0 commit comments