@@ -129,15 +129,20 @@ public void testOriginalDocumentNotAffected() throws Exception {
129129 SourceViewer viewer = createConfiguredViewer ();
130130 String originalContent = "original content" ;
131131 Document originalDoc = new Document (originalContent );
132+ IDocumentPartitioner originalPartitioner = setupPartitioning (originalDoc );
133+ assertNotNull (originalPartitioner );
132134 viewer .setDocument (originalDoc );
133- IDocumentPartitioner originalPartitioner = originalDoc .getDocumentPartitioner ();
134135
135136 Document externalDoc = new Document ("some 'highlighted' text" );
137+ IDocumentPartitioner externalPartitioner = setupPartitioning (externalDoc );
138+ assertNotNull (externalPartitioner );
136139 viewer .computeStyleRanges (externalDoc , new Region (0 , externalDoc .getLength ()));
137140
138141 assertEquals (originalContent , originalDoc .get (), "Original document content must not change" );
139142 assertEquals (originalPartitioner , originalDoc .getDocumentPartitioner (),
140143 "Original document partitioner must be restored" );
144+ assertEquals (externalPartitioner , externalDoc .getDocumentPartitioner (),
145+ "External document partitioner must be restored" );
141146 }
142147
143148 @ Test
@@ -193,6 +198,10 @@ public void testExceptionSafetyPartitionerRestored() throws Exception {
193198
194199 Document externalDoc = new Document ("short" );
195200 setupNamedPartitioning (externalDoc );
201+ IDocumentPartitioner externalPartitioner = externalDoc
202+ .getDocumentPartitioner (NAMED_PARTITIONING );
203+ assertNotNull (externalPartitioner , "External document should have a named partitioner" );
204+
196205 try {
197206 viewer .computeStyleRanges (externalDoc , new Region (0 , 100 ));
198207 } catch (BadLocationException expected ) {
@@ -203,17 +212,25 @@ public void testExceptionSafetyPartitionerRestored() throws Exception {
203212 IDocumentPartitioner restoredPartitioner = originalDoc
204213 .getDocumentPartitioner (NAMED_PARTITIONING );
205214 assertNotNull (restoredPartitioner , "Partitioner must be restored to original document after exception" );
215+ assertEquals (originalPartitioner , restoredPartitioner );
216+
217+ IDocumentPartitioner restoredExternalPartitioner = externalDoc
218+ .getDocumentPartitioner (NAMED_PARTITIONING );
219+ assertNotNull (restoredExternalPartitioner , "External partitioner must be restored to original document after exception" );
220+ assertEquals (externalPartitioner , restoredExternalPartitioner );
206221 }
207222
208223 @ Test
209224 public void testNamedPartitioning () throws Exception {
210225 SourceViewer viewer = createConfiguredViewerWithNamedPartitioning ();
211226 Document originalDoc = new Document ("original 'content' here" );
212- setupNamedPartitioning (originalDoc );
227+ IDocumentPartitioner originalPartitioner = setupNamedPartitioning (originalDoc );
228+ assertNotNull (originalPartitioner );
213229 viewer .setDocument (originalDoc );
214230
215231 Document externalDoc = new Document ("external 'styled' text" );
216- setupNamedPartitioning (externalDoc );
232+ IDocumentPartitioner externalPartitioner = setupNamedPartitioning (externalDoc );
233+ assertNotNull (externalPartitioner );
217234 List <StyleRange > styles = viewer .computeStyleRanges (externalDoc , new Region (0 , externalDoc .getLength ()));
218235
219236 assertNotNull (styles );
@@ -223,6 +240,12 @@ public void testNamedPartitioning() throws Exception {
223240 IDocumentPartitioner restoredPartitioner = originalDoc
224241 .getDocumentPartitioner (NAMED_PARTITIONING );
225242 assertNotNull (restoredPartitioner , "Partitioner must be restored to original document" );
243+ assertEquals (originalPartitioner , restoredPartitioner );
244+
245+ IDocumentPartitioner restoredExternalPartitioner = externalDoc
246+ .getDocumentPartitioner (NAMED_PARTITIONING );
247+ assertNotNull (restoredExternalPartitioner , "External partitioner must be restored to external document" );
248+ assertEquals (externalPartitioner , restoredExternalPartitioner );
226249 }
227250
228251 private SourceViewer createConfiguredViewer () {
@@ -266,10 +289,19 @@ private RuleBasedScanner createScanner() {
266289 return scanner ;
267290 }
268291
269- private void setupNamedPartitioning (Document document ) {
292+ private IDocumentPartitioner setupNamedPartitioning (Document document ) {
270293 IPartitionTokenScanner partitionScanner = new RuleBasedPartitionScanner ();
271294 IDocumentPartitioner partitioner = new FastPartitioner (partitionScanner , new String [] {});
272295 document .setDocumentPartitioner (NAMED_PARTITIONING , partitioner );
273296 partitioner .connect (document );
297+ return partitioner ;
298+ }
299+
300+ private IDocumentPartitioner setupPartitioning (Document document ) {
301+ IPartitionTokenScanner partitionScanner = new RuleBasedPartitionScanner ();
302+ IDocumentPartitioner partitioner = new FastPartitioner (partitionScanner , new String [] {});
303+ document .setDocumentPartitioner (partitioner );
304+ partitioner .connect (document );
305+ return partitioner ;
274306 }
275307}
0 commit comments