@Override public Range next() { if (hitsLeft == 0) { return null; } hitsLeft--; for (ApiView.ElementInfo elementInfo : apiView.getElements()) { if (elementInfo.element.getType().equals(elementType) && elementInfo.apiPosition > index) { boolean allMatched = true; for (Entry<String, String> entry : restrictions.entrySet()) { if (!entry.getValue().equals(elementInfo.element.getProperty(entry.getKey()))) { allMatched = false; break; } } if (!allMatched) { continue; } index = elementInfo.apiPosition; return new Range(index, index + 1); } } return null; }
/** * 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 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 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 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 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 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()); }
List<ElementInfo> elementsOut = getApiView().getElements(); int size = 0; for (ElementInfo elementOut : elementsOut) {
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); }
List<ElementInfo> elementsOut = getApiView().getElements(); int size = 0; for (ElementInfo elementOut : elementsOut) {
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); }
List<ElementInfo> elementsOut = getApiView().getElements(); for (ElementInfo elementOut : elementsOut) { if (elementOut.element.isGadget()) {
List<ElementInfo> elementsOut = getApiView().getElements(); for (ElementInfo elementOut : elementsOut) { if (elementOut.element.isGadget()) {