/** * Assert that the api view and document are still in sync. */ private void assertInSync(Document document, ApiView api) { ApiView alt = new ApiView(document, mock(Wavelet.class)); assertEquals(alt.apiContents(), api.apiContents()); List<ElementInfo> apiElements = api.getElements(); List<ElementInfo> altElements = alt.getElements(); assertEquals(altElements.size(), apiElements.size()); for (int i = 0; i < apiElements.size(); i++) { ElementInfo altInfo = altElements.get(i); ElementInfo apiInfo = apiElements.get(i); assertEquals(altInfo.element.getType(), apiInfo.element.getType()); assertEquals(altInfo.apiPosition, apiInfo.apiPosition); assertEquals(altInfo.xmlPosition, apiInfo.xmlPosition); } } }
/** * Assert that the api view and document are still in sync. */ private void assertInSync(Document document, ApiView api) { ApiView alt = new ApiView(document, mock(Wavelet.class)); assertEquals(alt.apiContents(), api.apiContents()); List<ElementInfo> apiElements = api.getElements(); List<ElementInfo> altElements = alt.getElements(); assertEquals(altElements.size(), apiElements.size()); for (int i = 0; i < apiElements.size(); i++) { ElementInfo altInfo = altElements.get(i); ElementInfo apiInfo = apiElements.get(i); assertEquals(altInfo.element.getType(), apiInfo.element.getType()); assertEquals(altInfo.apiPosition, apiInfo.apiPosition); assertEquals(altInfo.xmlPosition, apiInfo.xmlPosition); } } }
public void testInsertTextWithNewline() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello\nworld"); assertEquals("\nhello\nworld", api.apiContents()); assertInSync(document, api); List<ElementInfo> elements = api.getElements(); assertEquals(2, elements.size()); assertEquals(ElementType.LINE, elements.get(0).element.getType()); assertEquals(ElementType.LINE, elements.get(1).element.getType()); }
public void testInsertTextWithNewline() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello\nworld"); assertEquals("\nhello\nworld", api.apiContents()); assertInSync(document, api); List<ElementInfo> elements = api.getElements(); assertEquals(2, elements.size()); assertEquals(ElementType.LINE, elements.get(0).element.getType()); assertEquals(ElementType.LINE, elements.get(1).element.getType()); }
public void testTransformToXmlOffset() { Document document = BasicFactories.documentProvider().parse( LineContainers.debugContainerWrap("some text<gadget></gadget>")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(3, new Image("id", "caption")); List<ElementInfo> apiElements = api.getElements(); for (int i = 0; i < apiElements.size(); i++) { ElementInfo info = apiElements.get(i); assertEquals(info.xmlPosition, api.transformToXmlOffset(info.apiPosition)); } assertInSync(document, api); }
public void testStringAppend() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "world"); assertEquals("\nworld", api.apiContents()); assertInSync(document, api); api.insert(1, "hello "); assertEquals("\nhello world", api.apiContents()); assertInSync(document, api); }
public void testStringAppend() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "world"); assertEquals("\nworld", api.apiContents()); assertInSync(document, api); api.insert(1, "hello "); assertEquals("\nhello world", api.apiContents()); assertInSync(document, api); }
public void testTransformToXmlOffset() { Document document = BasicFactories.documentProvider().parse( LineContainers.debugContainerWrap("some text<gadget></gadget>")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(3, new Image("id", "caption")); List<ElementInfo> apiElements = api.getElements(); for (int i = 0; i < apiElements.size(); i++) { ElementInfo info = apiElements.get(i); assertEquals(info.xmlPosition, api.transformToXmlOffset(info.apiPosition)); } assertInSync(document, api); }
public void testComposeDocUsingAppend() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello"); api.insert(1, new Image("id", "caption")); assertEquals(2, api.getElements().size()); assertEquals("\n hello", api.apiContents()); assertInSync(document, api); api.insert(api.apiContents().length(), " world"); assertEquals("\n hello world", api.apiContents()); assertInSync(document, api); api.insert(api.apiContents().length(), new Image("id", "caption")); assertInSync(document, api); api.insert(api.apiContents().length(), "!"); assertEquals("\n hello world !", api.apiContents()); assertInSync(document, api); }
public void testComposeDocUsingAppend() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello"); api.insert(1, new Image("id", "caption")); assertEquals(2, api.getElements().size()); assertEquals("\n hello", api.apiContents()); assertInSync(document, api); api.insert(api.apiContents().length(), " world"); assertEquals("\n hello world", api.apiContents()); assertInSync(document, api); api.insert(api.apiContents().length(), new Image("id", "caption")); assertInSync(document, api); api.insert(api.apiContents().length(), "!"); assertEquals("\n hello world !", api.apiContents()); assertInSync(document, api); }
public void testDeleteString() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "helllo"); api.delete(3, 4); assertEquals("\nhello", api.apiContents()); assertInSync(document, api); api.delete(0, 2); assertEquals("ello", api.apiContents()); assertInSync(document, api); }
public void testDeleteString() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "helllo"); api.delete(3, 4); assertEquals("\nhello", api.apiContents()); assertInSync(document, api); api.delete(0, 2); assertEquals("ello", api.apiContents()); assertInSync(document, api); }
public void testInsertAndDeleteElementInString() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello"); api.insert(3, new Image("id", "caption")); assertEquals("\nhe llo", api.apiContents()); assertInSync(document, api); api.delete(3, 5); assertEquals("\nhelo", api.apiContents()); assertInSync(document, api); }
public void testInsertBeforeElementThenDeleteElement() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "0123456789"); api.insert(4, new Image("id1", "caption")); api.insert(4, "4"); assertInSync(document, api); api.delete(5, 6); assertEquals(1, api.getElements().size()); assertEquals("\n01243456789", api.apiContents()); assertInSync(document, api); }
public void testInsertBeforeElementThenDeleteElement() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "0123456789"); api.insert(4, new Image("id1", "caption")); api.insert(4, "4"); assertInSync(document, api); api.delete(5, 6); assertEquals(1, api.getElements().size()); assertEquals("\n01243456789", api.apiContents()); assertInSync(document, api); }
public void testInsertAndDeleteElementInString() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "hello"); api.insert(3, new Image("id", "caption")); assertEquals("\nhe llo", api.apiContents()); assertInSync(document, api); api.delete(3, 5); assertEquals("\nhelo", api.apiContents()); assertInSync(document, api); }
public void testShift() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "0123456789"); api.insert(4, new Image("id1", "caption")); api.insert(8, new Image("id1", "caption")); assertInSync(document, api); api.delete(2, 3); List<ElementInfo> elements = api.getElements(); assertEquals(3, elements.size()); api.delete(elements.get(1).apiPosition, elements.get(0).apiPosition + 1); assertInSync(document, api); api.delete(api.getElements().get(1).apiPosition, elements.get(0).apiPosition + 1); assertInSync(document, api); }
public void testShift() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "0123456789"); api.insert(4, new Image("id1", "caption")); api.insert(8, new Image("id1", "caption")); assertInSync(document, api); api.delete(2, 3); List<ElementInfo> elements = api.getElements(); assertEquals(3, elements.size()); api.delete(elements.get(1).apiPosition, elements.get(0).apiPosition + 1); assertInSync(document, api); api.delete(api.getElements().get(1).apiPosition, elements.get(0).apiPosition + 1); assertInSync(document, api); }
public void testStringReplace() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "22 a b 22 c d 22 e f"); while (true) { String contents = api.apiContents(); int p = contents.indexOf("22"); if (p < 0) { break; } api.insert(p, "q"); assertInSync(document, api); api.delete(p + 1, p + 3); assertInSync(document, api); } assertEquals("\nq a b q c d q e f", api.apiContents()); assertInSync(document, api); }
public void testStringReplace() { Document document = BasicFactories.documentProvider().parse(LineContainers.debugContainerWrap("")); ApiView api = new ApiView(document, mock(Wavelet.class)); api.insert(1, "22 a b 22 c d 22 e f"); while (true) { String contents = api.apiContents(); int p = contents.indexOf("22"); if (p < 0) { break; } api.insert(p, "q"); assertInSync(document, api); api.delete(p + 1, p + 3); assertInSync(document, api); } assertEquals("\nq a b q c d q e f", api.apiContents()); assertInSync(document, api); }