1 /******************************************************************************* 2 * Copyright (c) 2000, 2014 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.text.tests.link; 15 16 import static org.junit.Assert.assertEquals; 17 import static org.junit.Assert.assertFalse; 18 import static org.junit.Assert.assertSame; 19 import static org.junit.Assert.assertTrue; 20 21 import org.junit.Test; 22 23 import org.eclipse.jface.text.BadLocationException; 24 import org.eclipse.jface.text.Document; 25 import org.eclipse.jface.text.IDocument; 26 import org.eclipse.jface.text.link.LinkedModeModel; 27 import org.eclipse.jface.text.link.LinkedPosition; 28 import org.eclipse.jface.text.link.LinkedPositionGroup; 29 30 31 public class LinkedPositionGroupTest { 32 33 @Test testIsEmpty()34 public void testIsEmpty() { 35 LinkedPositionGroup group= new LinkedPositionGroup(); 36 assertTrue(group.isEmpty()); 37 } 38 39 @Test testIsNotEmtpy()40 public void testIsNotEmtpy() throws BadLocationException { 41 LinkedPositionGroup group= new LinkedPositionGroup(); 42 group.addPosition(new LinkedPosition(new Document(), 0, 0)); 43 assertFalse(group.isEmpty()); 44 } 45 46 @Test testGetPositions()47 public void testGetPositions() throws BadLocationException { 48 LinkedPositionGroup group= new LinkedPositionGroup(); 49 group.addPosition(new LinkedPosition(new Document(), 0, 0)); 50 group.addPosition(new LinkedPosition(new Document(), 0, 0)); 51 assertEquals(2, group.getPositions().length); 52 } 53 54 @Test testAddPosition()55 public void testAddPosition() throws BadLocationException { 56 LinkedPositionGroup group= new LinkedPositionGroup(); 57 LinkedPosition p= new LinkedPosition(new Document(), 0, 0); 58 group.addPosition(p); 59 assertSame(p, group.getPositions()[0]); 60 } 61 62 @Test testAddIllegalState()63 public void testAddIllegalState() throws BadLocationException { 64 LinkedPositionGroup group= new LinkedPositionGroup(); 65 LinkedModeModel env= new LinkedModeModel(); 66 env.addGroup(group); 67 68 LinkedPosition p= new LinkedPosition(new Document(), 0, 0); 69 try { 70 group.addPosition(p); 71 } catch (IllegalStateException e) { 72 return; 73 } 74 75 assertFalse(true); 76 } 77 78 @Test testAddBadLocation()79 public void testAddBadLocation() throws BadLocationException { 80 LinkedPositionGroup group= new LinkedPositionGroup(); 81 IDocument doc= new Document(GARTEN); 82 group.addPosition(new LinkedPosition(doc, 1, 9)); 83 try { 84 group.addPosition(new LinkedPosition(doc, 3, 9)); 85 } catch (BadLocationException e) { 86 return; 87 } 88 89 assertFalse(true); 90 } 91 92 @Test testAddEqualContent()93 public void testAddEqualContent() { 94 LinkedPositionGroup group= new LinkedPositionGroup(); 95 IDocument doc= new Document(GARTEN); 96 try { 97 group.addPosition(new LinkedPosition(doc, 1, 9)); 98 group.addPosition(new LinkedPosition(doc, 68, 9)); 99 } catch (BadLocationException e) { 100 assertFalse(true); 101 } 102 } 103 104 @Test testAddNotEqualContent()105 public void testAddNotEqualContent() { 106 LinkedPositionGroup group= new LinkedPositionGroup(); 107 IDocument doc= new Document(GARTEN); 108 try { 109 group.addPosition(new LinkedPosition(doc, GARTEN.indexOf("das"), 3)); 110 group.addPosition(new LinkedPosition(doc, GARTEN.indexOf("Das"), 3)); 111 } catch (BadLocationException e) { 112 assertFalse(true); 113 } 114 } 115 116 private static final String GARTEN= 117 " MARGARETE:\n" + 118 " Versprich mir, Heinrich!\n" + 119 " \n" + 120 " FAUST:\n" + 121 " Was ich kann!\n" + 122 " \n" + 123 " MARGARETE:\n" + 124 " Nun sag, wie hast du\'s mit der Religion?\n" + 125 " Du bist ein herzlich guter Mann,\n" + 126 " Allein ich glaub, du haeltst nicht viel davon.\n" + 127 " \n" + 128 " FAUST:\n" + 129 " Lass das, mein Kind! Du fuehlst, ich bin dir gut;\n" + 130 " Fuer meine Lieben liess\' ich Leib und Blut,\n" + 131 " Will niemand sein Gefuehl und seine Kirche rauben.\n" + 132 " \n" + 133 " MARGARETE:\n" + 134 " Das ist nicht recht, man muss dran glauben.\n" + 135 " \n" + 136 " FAUST:\n" + 137 " Muss man?\n" + 138 " \n" + 139 " MARGARETE:\n" + 140 " Ach! wenn ich etwas auf dich konnte! Du ehrst auch nicht die heil\'gen Sakramente.\n" + 141 " \n" + 142 " FAUST:\n" + 143 " Ich ehre sie.\n" + 144 " \n" + 145 " MARGARETE:\n" + 146 " Doch ohne Verlangen. Zur Messe, zur Beichte bist du lange nicht gegangen.\n" + 147 " Glaubst du an Gott?\n" + 148 " \n" + 149 " FAUST:\n" + 150 " Mein Liebchen, wer darf sagen: Ich glaub an Gott?\n" + 151 " Magst Priester oder Weise fragen,\n" + 152 " Und ihre Antwort scheint nur Spott\n" + 153 " Ueber den Frager zu sein.\n" + 154 " \n" + 155 " MARGARETE:\n" + 156 " So glaubst du nicht?\n" + 157 " \n" + 158 " FAUST:\n" + 159 " Misshoer mich nicht, du holdes Angesicht!\n" + 160 " Wer darf ihn nennen?\n" + 161 " Und wer bekennen:\n" + 162 " \"Ich glaub ihn!\"?\n" + 163 " Wer empfinden,\n" + 164 " Und sich unterwinden\n" + 165 " Zu sagen: \"Ich glaub ihn nicht!\"?\n" + 166 " Der Allumfasser,\n" + 167 " Der Allerhalter,\n" + 168 " Fasst und erhaelt er nicht\n" + 169 " Dich, mich, sich selbst?\n" + 170 " Woelbt sich der Himmel nicht da droben?\n" + 171 " Liegt die Erde nicht hier unten fest?\n" + 172 " Und steigen freundlich blickend\n" + 173 " Ewige Sterne nicht herauf?\n" + 174 " Schau ich nicht Aug in Auge dir,\n" + 175 " Und draengt nicht alles\n" + 176 " Nach Haupt und Herzen dir,\n" + 177 " Und webt in ewigem Geheimnis\n" + 178 " Unsichtbar sichtbar neben dir?\n" + 179 " Erfuell davon dein Herz, so gross es ist,\n" + 180 " Und wenn du ganz in dem Gefuehle selig bist,\n" + 181 " Nenn es dann, wie du willst,\n" + 182 " Nenn\'s Glueck! Herz! Liebe! Gott\n" + 183 " Ich habe keinen Namen\n" + 184 " Dafuer! Gefuehl ist alles;\n" + 185 " Name ist Schall und Rauch,\n" + 186 " Umnebelnd Himmelsglut.\n"; 187 } 188