1+ package processing .app ;
2+
3+ import static org .fest .assertions .Assertions .assertThat ;
4+
5+ import org .junit .Before ;
6+ import org .junit .Test ;
7+
8+ import cc .arduino .packages .BoardPort ;
9+ import processing .app .helpers .PreferencesMap ;
10+
11+ public class UpdateTextAreaActionTest {
12+
13+ private static final String TIMESTAMP_REGEX = "\\ d\\ d:\\ d\\ d:\\ d\\ d.\\ d\\ d\\ d" ;
14+
15+ class DummyTextMonitor extends AbstractTextMonitor {
16+ public DummyTextMonitor (BoardPort boardPort ) {
17+ super (boardPort );
18+ }
19+ }
20+
21+ @ Before
22+ public void setup () {
23+ PreferencesData .defaults = new PreferencesMap ();
24+ PreferencesData .set ("editor.font" , "Monospaced,plain,12" );
25+ PreferencesData .set ("gui.scale" , "100" );
26+ Theme .defaults = new PreferencesMap ();
27+ Theme .table .put ("console.font" , "Monospaced,plain,12" );
28+ }
29+
30+ @ Test
31+ public void noTimestampAdded () {
32+ DummyTextMonitor textMon = new DummyTextMonitor (new BoardPort ());
33+ textMon .addTimeStampBox .setSelected (false );
34+
35+ textMon .updateTextArea ("line1\n line2\r \n line3" );
36+ assertThat (textMon .textArea .getText ()).matches ("line1\n line2\r \n line3" );
37+ }
38+
39+ @ Test
40+ public void all3LinesHaveTimestampAdded () {
41+ DummyTextMonitor textMon = new DummyTextMonitor (new BoardPort ());
42+ textMon .addTimeStampBox .setSelected (true );
43+
44+ textMon .updateTextArea ("line1\n line2\r \n line3" );
45+ assertThat (textMon .textArea .getText ())
46+ .matches (TIMESTAMP_REGEX + " -> line1\\ n" + //
47+ TIMESTAMP_REGEX + " -> line2\\ r\\ n" + //
48+ TIMESTAMP_REGEX + " -> line3" );
49+ }
50+
51+ @ Test
52+ public void emptyLinesHaveTimestampToo () {
53+ DummyTextMonitor textMon = new DummyTextMonitor (new BoardPort ());
54+ textMon .addTimeStampBox .setSelected (true );
55+
56+ textMon .updateTextArea ("line_1\n \n line_2" );
57+ assertThat (textMon .textArea .getText ())
58+ .matches (TIMESTAMP_REGEX + " -> line_1\\ n" + //
59+ TIMESTAMP_REGEX + " -> \\ n" + //
60+ TIMESTAMP_REGEX + " -> line_2" );
61+ }
62+
63+ @ Test
64+ public void newLinesAreRememberedWhenNewBufferIsUsed () {
65+ DummyTextMonitor textMon = new DummyTextMonitor (new BoardPort ());
66+ textMon .addTimeStampBox .setSelected (true );
67+
68+ textMon .updateTextArea ("no newline" );
69+ assertThat (textMon .textArea .getText ())
70+ .matches (TIMESTAMP_REGEX + " -> no newline" );
71+
72+ textMon .updateTextArea (" more text" );
73+ assertThat (textMon .textArea .getText ())
74+ .matches (TIMESTAMP_REGEX + " -> no newline more text" );
75+
76+ textMon .updateTextArea ("\n " );
77+ assertThat (textMon .textArea .getText ())
78+ .matches (TIMESTAMP_REGEX + " -> no newline more text\n " );
79+
80+ textMon .updateTextArea ("\n " );
81+ assertThat (textMon .textArea .getText ())
82+ .matches (TIMESTAMP_REGEX + " -> no newline more text\n " + //
83+ TIMESTAMP_REGEX + " -> \n " );
84+
85+ textMon .updateTextArea ("third line" );
86+ assertThat (textMon .textArea .getText ())
87+ .matches (TIMESTAMP_REGEX + " -> no newline more text\n " + //
88+ TIMESTAMP_REGEX + " -> \n " + //
89+ TIMESTAMP_REGEX + " -> third line" );
90+ }
91+ }
0 commit comments