1 /*
2  * RChunkHeaderParserTests.java
3  *
4  * Copyright (C) 2021 by RStudio, PBC
5  *
6  * Unless you have received this program directly from RStudio pursuant
7  * to the terms of a commercial license agreement with RStudio, then
8  * this program is licensed to you under the terms of version 3 of the
9  * GNU Affero General Public License. This program is distributed WITHOUT
10  * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
12  * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
13  *
14  */
15 package org.rstudio.studio.client.workbench.views.source.editors.text.assist;
16 
17 import com.google.gwt.junit.client.GWTTestCase;
18 
19 import java.util.Map;
20 
21 public class RChunkHeaderParserTests extends GWTTestCase
22 {
23    @Override
getModuleName()24    public String getModuleName()
25    {
26       return "org.rstudio.studio.RStudioTests";
27    }
28 
testRMarkdownChunkHeader()29    public void testRMarkdownChunkHeader()
30    {
31       String header = "```{r label, echo=TRUE}";
32       Map<String, String> pieces = RChunkHeaderParser.parse(header);
33       assertTrue(pieces.containsKey("label"));
34       assertTrue(pieces.containsKey("echo"));
35       assertTrue(pieces.get("label").contentEquals("label"));
36       assertTrue(pieces.get("echo").contentEquals("TRUE"));
37    }
38 
testNoCommaBeforeFirstItem()39    public void testNoCommaBeforeFirstItem()
40    {
41       String header = "```{r echo=TRUE}";
42       Map<String, String> pieces = RChunkHeaderParser.parse(header);
43       assertTrue(pieces.containsKey("echo"));
44       assertTrue(pieces.get("echo").contentEquals("TRUE"));
45    }
46 
testCommaBeforeFirstItem()47    public void testCommaBeforeFirstItem()
48    {
49       String header = "```{r, echo=TRUE}";
50       Map<String, String> pieces = RChunkHeaderParser.parse(header);
51       assertTrue(pieces.containsKey("echo"));
52       assertTrue(pieces.get("echo").contentEquals("TRUE"));
53    }
54 
testComplicatedExpression()55    public void testComplicatedExpression()
56    {
57       String header = "```{r, echo= {1 + 1}, message=FALSE}";
58       Map<String, String> pieces = RChunkHeaderParser.parse(header);
59       assertTrue(pieces.containsKey("echo"));
60       assertTrue(pieces.get("echo").contentEquals("{1 + 1}"));
61       assertTrue(pieces.containsKey("message"));
62       assertTrue(pieces.get("message").contentEquals("FALSE"));
63    }
64 
65 }
66