Skip to content

Commit d522b04

Browse files
committed
[INTERNAL] More test & docu
1 parent dc28479 commit d522b04

File tree

3 files changed

+65
-5
lines changed

3 files changed

+65
-5
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Compatible with _IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode
1212
This plugin introduces CSV (_Comma-Separated Values_) as a language to Jetbrains IDE with a syntax definition, structured language elements and associated file types (.csv/.tsv/.psv).
1313
This enables default editor features like syntax validation, highlighting and inspections for CSV-alike files.
1414

15+
![CSV Plugin Example](./docs/example.png)
16+
1517
## Features
1618

1719
- CSV/TSV/PSV file detection

src/main/resources/META-INF/plugin.xml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77

88
<description><![CDATA[
99
10-
<p>Lightweight plugin for editing CSV/TSV/PSV files with a flexible table editor, syntax validation, structure highlighting, customizable coloring, new intentions and helpful inspections.</p>
11-
<br><hr/><br>
12-
<img width="600" height="297" src="https://raw.githubusercontent.com/SeeSharpSoft/intellij-csv-validator/master/docs/example.png" /><br><br>
10+
<p>Lightweight plugin for editing CSV/TSV/PSV files with a flexible table editor, syntax validation, structure highlighting, customizable coloring, new intentions and helpful inspections.</p><br>
1311
<p><b>Features:</b><br>
1412
<ul>
1513
<li>support for CSV/TSV/PSV file extensions</li>
@@ -40,8 +38,7 @@
4038
<em>Thanks to @royqh1979, @egoisticalgoat, @sabi0, @ptahchiev, @ghost, @MarkJeronimus, <a href="http://finevisuals.de" target="_blank">FineVisuals</a> and others for supporting me and the project!</em>
4139
<br><br><br>
4240
</p>
43-
44-
<hr /><br>
41+
<img width="600" height="297" src="https://plugins.jetbrains.com/files/10037/screenshot_21096.png" /><br><br>
4542
<p>
4643
<span style="color: #555555">
4744
<b>IntelliJ IDEA Ultimate/PhpStorm/DataGrip/etc.:</b> The plugin is fully compatible with the <em>'Edit as Table...'</em> functionality.<br><br>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package net.seesharpsoft.intellij.plugins.csv.actions;
2+
3+
import com.intellij.openapi.actionSystem.Presentation;
4+
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
5+
import net.seesharpsoft.intellij.plugins.csv.CsvHelper;
6+
import net.seesharpsoft.intellij.plugins.csv.components.CsvFileAttributes;
7+
import net.seesharpsoft.intellij.plugins.csv.editor.CsvEditorSettings;
8+
9+
public class CsvChangeEscapeCharacterActionTest extends LightPlatformCodeInsightFixtureTestCase {
10+
11+
@Override
12+
protected String getTestDataPath() {
13+
return "./src/test/resources/actions";
14+
}
15+
16+
@Override
17+
protected void tearDown() throws Exception {
18+
CsvFileAttributes.getInstance(this.getProject()).reset();
19+
super.tearDown();
20+
}
21+
22+
public void testActionGroupVisibilityForCsv() {
23+
myFixture.configureByFiles("CommaSeparated.csv");
24+
25+
Presentation presentation = myFixture.testAction(new CsvChangeEscapeCharacterActionGroup());
26+
assertTrue(presentation.isVisible());
27+
assertTrue(presentation.isEnabled());
28+
}
29+
30+
public void testActionGroupVisibilityForTsv() {
31+
myFixture.configureByFiles("TabSeparated.tsv");
32+
33+
Presentation presentation = myFixture.testAction(new CsvChangeEscapeCharacterActionGroup());
34+
assertTrue(presentation.isVisible());
35+
assertTrue(presentation.isEnabled());
36+
}
37+
38+
public void testChangeEscapeCharacter() {
39+
myFixture.configureByFiles("CommaSeparated.csv");
40+
41+
for (CsvEditorSettings.EscapeCharacter escapeCharacter : CsvEditorSettings.EscapeCharacter.values()) {
42+
Presentation presentation = myFixture.testAction(new CsvChangeEscapeCharacterAction(escapeCharacter));
43+
assertEquals(escapeCharacter.getDisplay(), presentation.getText());
44+
assertEquals(escapeCharacter, CsvHelper.getCurrentEscapeCharacter(myFixture.getFile()));
45+
}
46+
}
47+
48+
public void testDefaultEscapeCharacterAction() {
49+
myFixture.configureByFiles("CommaSeparated.csv");
50+
51+
CsvEditorSettings.EscapeCharacter initialEscapeCharacter = CsvHelper.getCurrentEscapeCharacter(myFixture.getFile());
52+
53+
myFixture.testAction(new CsvChangeEscapeCharacterAction(CsvEditorSettings.EscapeCharacter.BACKSLASH));
54+
55+
assertFalse("separator should not be initial", initialEscapeCharacter.equals(CsvHelper.getCurrentEscapeCharacter(myFixture.getFile())));
56+
57+
myFixture.testAction(new CsvDefaultEscapeCharacterAction());
58+
59+
assertEquals(initialEscapeCharacter, CsvHelper.getCurrentEscapeCharacter(myFixture.getFile()));
60+
}
61+
}

0 commit comments

Comments
 (0)