Skip to content

Commit 8d0fe59

Browse files
committed
Added test for the parser
Signed-off-by: Carlo Sciolla <carlo.sciolla@gmail.com>
1 parent 5acadf1 commit 8d0fe59

File tree

4 files changed

+255
-6
lines changed

4 files changed

+255
-6
lines changed

org4idea.iml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
77
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
88
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9+
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
910
</content>
1011
<orderEntry type="inheritedJdk" />
1112
<orderEntry type="sourceFolder" forTests="false" />
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
package tk.skuro.idea.orgmode.parser;
22

3-
import org.junit.Before;
3+
import com.intellij.testFramework.ParsingTestCase;
44

5-
public class ParserTest {
5+
public class ParserTest extends ParsingTestCase {
66

7-
private OrgParser parser;
7+
public ParserTest() {
8+
super("", "org", new OrgParserDefinition());
9+
}
10+
11+
public void testParsingTestData() {
12+
doTest(true);
13+
}
14+
15+
@Override
16+
protected String getTestDataPath() {
17+
return "src/test/resources/parsing";
18+
}
19+
20+
@Override
21+
protected boolean skipSpaces() {
22+
return false;
23+
}
824

9-
@Before
10-
public void setup(){
11-
parser = new OrgParser();
25+
@Override
26+
protected boolean includeRanges() {
27+
return true;
1228
}
1329

30+
1431
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
:PROPERTIES:
2+
:Tst: 42
3+
:END:
4+
5+
6+
#+BEGIN_SRC clojure
7+
(defn universe [] 42)
8+
#+END_SRC
9+
10+
# misplaced block end:
11+
#+END_SRC
12+
13+
# and this is just a comment
14+
15+
_I'm underlined text_
16+
17+
* I'm bold text *
18+
19+
* Test one
20+
I'm part of the *first* outline
21+
22+
* Test folding
23+
24+
** Test two
25+
This is part of the second outline
26+
27+
- one
28+
- two
29+
- three
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
FILE(0,339)
2+
OrgPsiElementImpl(OrgTokenType.DRAWER)(0,29)
3+
PsiElement(DRAWER_DELIMITER)(':PROPERTIES:')(0,12)
4+
PsiWhiteSpace('\n ')(12,15)
5+
PsiElement(DRAWER_CONTENT)(':')(15,16)
6+
PsiElement(DRAWER_CONTENT)('T')(16,17)
7+
PsiElement(DRAWER_CONTENT)('s')(17,18)
8+
PsiElement(DRAWER_CONTENT)('t')(18,19)
9+
PsiElement(DRAWER_CONTENT)(':')(19,20)
10+
PsiElement(DRAWER_CONTENT)(' ')(20,21)
11+
PsiElement(DRAWER_CONTENT)('4')(21,22)
12+
PsiElement(DRAWER_CONTENT)('2')(22,23)
13+
PsiWhiteSpace('\n')(23,24)
14+
PsiElement(DRAWER_DELIMITER)(':END:')(24,29)
15+
PsiWhiteSpace('\n\n\n')(29,32)
16+
OrgPsiElementImpl(OrgTokenType.BLOCK)(32,83)
17+
PsiElement(BLOCK_START)('#+BEGIN_SRC clojure')(32,51)
18+
PsiWhiteSpace('\n')(51,52)
19+
PsiElement(BLOCK_CONTENT)('(')(52,53)
20+
PsiElement(BLOCK_CONTENT)('d')(53,54)
21+
PsiElement(BLOCK_CONTENT)('e')(54,55)
22+
PsiElement(BLOCK_CONTENT)('f')(55,56)
23+
PsiElement(BLOCK_CONTENT)('n')(56,57)
24+
PsiElement(BLOCK_CONTENT)(' ')(57,58)
25+
PsiElement(BLOCK_CONTENT)('u')(58,59)
26+
PsiElement(BLOCK_CONTENT)('n')(59,60)
27+
PsiElement(BLOCK_CONTENT)('i')(60,61)
28+
PsiElement(BLOCK_CONTENT)('v')(61,62)
29+
PsiElement(BLOCK_CONTENT)('e')(62,63)
30+
PsiElement(BLOCK_CONTENT)('r')(63,64)
31+
PsiElement(BLOCK_CONTENT)('s')(64,65)
32+
PsiElement(BLOCK_CONTENT)('e')(65,66)
33+
PsiElement(BLOCK_CONTENT)(' ')(66,67)
34+
PsiElement(BLOCK_CONTENT)('[')(67,68)
35+
PsiElement(BLOCK_CONTENT)(']')(68,69)
36+
PsiElement(BLOCK_CONTENT)(' ')(69,70)
37+
PsiElement(BLOCK_CONTENT)('4')(70,71)
38+
PsiElement(BLOCK_CONTENT)('2')(71,72)
39+
PsiElement(BLOCK_CONTENT)(')')(72,73)
40+
PsiWhiteSpace('\n')(73,74)
41+
PsiElement(BLOCK_END)('#+END_SRC')(74,83)
42+
PsiWhiteSpace('\n\n')(83,85)
43+
PsiComment(COMMENT)('# misplaced block end:')(85,107)
44+
PsiWhiteSpace('\n')(107,108)
45+
PsiElement(UNMATCHED_DELIMITER)('#+END_SRC')(108,117)
46+
PsiWhiteSpace('\n\n')(117,119)
47+
PsiComment(COMMENT)('# and this is just a comment')(119,147)
48+
PsiWhiteSpace('\n\n')(147,149)
49+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(149,170)
50+
PsiElement(UNDERLINE)('_I'm underlined text_')(149,170)
51+
PsiWhiteSpace('\n\n ')(170,173)
52+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(173,190)
53+
PsiElement(BOLD)('* I'm bold text *')(173,190)
54+
PsiWhiteSpace('\n\n')(190,192)
55+
PsiElement(OUTLINE)('* Test one')(192,202)
56+
PsiWhiteSpace('\n ')(202,207)
57+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(207,208)
58+
PsiElement(TEXT)('I')(207,208)
59+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(208,209)
60+
PsiElement(TEXT)(''')(208,209)
61+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(209,210)
62+
PsiElement(TEXT)('m')(209,210)
63+
PsiWhiteSpace(' ')(210,211)
64+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(211,212)
65+
PsiElement(TEXT)('p')(211,212)
66+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(212,213)
67+
PsiElement(TEXT)('a')(212,213)
68+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(213,214)
69+
PsiElement(TEXT)('r')(213,214)
70+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(214,215)
71+
PsiElement(TEXT)('t')(214,215)
72+
PsiWhiteSpace(' ')(215,216)
73+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(216,217)
74+
PsiElement(TEXT)('o')(216,217)
75+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(217,218)
76+
PsiElement(TEXT)('f')(217,218)
77+
PsiWhiteSpace(' ')(218,219)
78+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(219,220)
79+
PsiElement(TEXT)('t')(219,220)
80+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(220,221)
81+
PsiElement(TEXT)('h')(220,221)
82+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(221,222)
83+
PsiElement(TEXT)('e')(221,222)
84+
PsiWhiteSpace(' ')(222,223)
85+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(223,230)
86+
PsiElement(BOLD)('*first*')(223,230)
87+
PsiWhiteSpace(' ')(230,231)
88+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(231,232)
89+
PsiElement(TEXT)('o')(231,232)
90+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(232,233)
91+
PsiElement(TEXT)('u')(232,233)
92+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(233,234)
93+
PsiElement(TEXT)('t')(233,234)
94+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(234,235)
95+
PsiElement(TEXT)('l')(234,235)
96+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(235,236)
97+
PsiElement(TEXT)('i')(235,236)
98+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(236,237)
99+
PsiElement(TEXT)('n')(236,237)
100+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(237,238)
101+
PsiElement(TEXT)('e')(237,238)
102+
PsiWhiteSpace('\n\n')(238,240)
103+
PsiElement(OUTLINE)('* Test folding')(240,254)
104+
PsiWhiteSpace('\n\n')(254,256)
105+
PsiElement(OUTLINE)('** Test two')(256,267)
106+
PsiWhiteSpace('\n ')(267,272)
107+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(272,273)
108+
PsiElement(TEXT)('T')(272,273)
109+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(273,274)
110+
PsiElement(TEXT)('h')(273,274)
111+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(274,275)
112+
PsiElement(TEXT)('i')(274,275)
113+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(275,276)
114+
PsiElement(TEXT)('s')(275,276)
115+
PsiWhiteSpace(' ')(276,277)
116+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(277,278)
117+
PsiElement(TEXT)('i')(277,278)
118+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(278,279)
119+
PsiElement(TEXT)('s')(278,279)
120+
PsiWhiteSpace(' ')(279,280)
121+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(280,281)
122+
PsiElement(TEXT)('p')(280,281)
123+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(281,282)
124+
PsiElement(TEXT)('a')(281,282)
125+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(282,283)
126+
PsiElement(TEXT)('r')(282,283)
127+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(283,284)
128+
PsiElement(TEXT)('t')(283,284)
129+
PsiWhiteSpace(' ')(284,285)
130+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(285,286)
131+
PsiElement(TEXT)('o')(285,286)
132+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(286,287)
133+
PsiElement(TEXT)('f')(286,287)
134+
PsiWhiteSpace(' ')(287,288)
135+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(288,289)
136+
PsiElement(TEXT)('t')(288,289)
137+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(289,290)
138+
PsiElement(TEXT)('h')(289,290)
139+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(290,291)
140+
PsiElement(TEXT)('e')(290,291)
141+
PsiWhiteSpace(' ')(291,292)
142+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(292,293)
143+
PsiElement(TEXT)('s')(292,293)
144+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(293,294)
145+
PsiElement(TEXT)('e')(293,294)
146+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(294,295)
147+
PsiElement(TEXT)('c')(294,295)
148+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(295,296)
149+
PsiElement(TEXT)('o')(295,296)
150+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(296,297)
151+
PsiElement(TEXT)('n')(296,297)
152+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(297,298)
153+
PsiElement(TEXT)('d')(297,298)
154+
PsiWhiteSpace(' ')(298,299)
155+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(299,300)
156+
PsiElement(TEXT)('o')(299,300)
157+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(300,301)
158+
PsiElement(TEXT)('u')(300,301)
159+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(301,302)
160+
PsiElement(TEXT)('t')(301,302)
161+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(302,303)
162+
PsiElement(TEXT)('l')(302,303)
163+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(303,304)
164+
PsiElement(TEXT)('i')(303,304)
165+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(304,305)
166+
PsiElement(TEXT)('n')(304,305)
167+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(305,306)
168+
PsiElement(TEXT)('e')(305,306)
169+
PsiWhiteSpace('\n\n ')(306,312)
170+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(312,313)
171+
PsiElement(TEXT)('-')(312,313)
172+
PsiWhiteSpace(' ')(313,314)
173+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(314,315)
174+
PsiElement(TEXT)('o')(314,315)
175+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(315,316)
176+
PsiElement(TEXT)('n')(315,316)
177+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(316,317)
178+
PsiElement(TEXT)('e')(316,317)
179+
PsiWhiteSpace('\n ')(317,322)
180+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(322,323)
181+
PsiElement(TEXT)('-')(322,323)
182+
PsiWhiteSpace(' ')(323,324)
183+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(324,325)
184+
PsiElement(TEXT)('t')(324,325)
185+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(325,326)
186+
PsiElement(TEXT)('w')(325,326)
187+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(326,327)
188+
PsiElement(TEXT)('o')(326,327)
189+
PsiWhiteSpace('\n ')(327,332)
190+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(332,333)
191+
PsiElement(TEXT)('-')(332,333)
192+
PsiWhiteSpace(' ')(333,334)
193+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(334,335)
194+
PsiElement(TEXT)('t')(334,335)
195+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(335,336)
196+
PsiElement(TEXT)('h')(335,336)
197+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(336,337)
198+
PsiElement(TEXT)('r')(336,337)
199+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(337,338)
200+
PsiElement(TEXT)('e')(337,338)
201+
OrgPsiElementImpl(OrgTokenType.TEXT_ELEMENT)(338,339)
202+
PsiElement(TEXT)('e')(338,339)

0 commit comments

Comments
 (0)