@Test public void getValue_shouldReturnProperValues() { when(request.getParameter("w2_hid")).thenReturn("3"); when(request.getParameter("w2span_0_hid")).thenReturn("1001"); when(request.getParameter("w2span_1_hid")).thenReturn("1002"); when(request.getParameter("w2span_2_hid")).thenReturn("1003"); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); List values = (List) dynamicAutocompleteWidget.getValue(context, request); assertThat(values.size(), is(3)); Set<String> results = new HashSet<String>(); for (Object val : values) { results.add((String) val); } assertTrue(results.contains("1001")); assertTrue(results.contains("1002")); assertTrue(results.contains("1003")); }
@Test public void generateHtml_shouldRenderProperHtmlWithConceptClasses() { when(context.getMode()).thenReturn(FormEntryContext.Mode.EDIT); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(null, generateConceptClassList()); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("<div id=\"w2_div\" class=\"dynamicAutocomplete\">" + "<input name=\"w2_hid\" id=\"w2_hid\" type=\"hidden\" class=\"autoCompleteHidden\" />" + "<input type=\"text\" id=\"w2\" name=\"w2\" onfocus=\"setupAutocomplete\\(this, 'conceptSearch.form','null','someClass,anotherClass'\\); \"class=\"autoCompleteText\" onBlur=\"onBlurAutocomplete\\(this\\)\"/>" + "<input id=\"w2_button\" type=\"button\" class=\"addConceptButton\" value=\"Add\" /></div>", html); }
@Test public void getValue_shouldReturnEmptyListIfNoValuesInRequest() { DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); List values = (List) dynamicAutocompleteWidget.getValue(context, request); assertThat(values.size(), is(0)); }
@Test public void generateHtml_shouldRenderSingleConceptProperlyInViewMode() { when(context.getMode()).thenReturn(FormEntryContext.Mode.VIEW); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); Concept initialValue = mock(Concept.class); when(initialValue.getDisplayString()).thenReturn("concept1"); dynamicAutocompleteWidget.setInitialValue(initialValue); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("concept1", html); }
@Test public void generateHtml_shouldRenderMultipleConceptProperlyInViewMode() { when(context.getMode()).thenReturn(FormEntryContext.Mode.VIEW); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); Concept initialValue1 = mock(Concept.class); when(initialValue1.getDisplayString()).thenReturn("concept1"); dynamicAutocompleteWidget.addInitialValue(initialValue1); Concept initialValue2 = mock(Concept.class); when(initialValue2.getDisplayString()).thenReturn("concept2"); dynamicAutocompleteWidget.addInitialValue(initialValue2); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("concept1;concept2;", html); }
@Test public void generateHtml_shouldRenderProperHtmlWithConceptList() { when(context.getMode()).thenReturn(FormEntryContext.Mode.EDIT); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("<div id=\"w2_div\" class=\"dynamicAutocomplete\">" + "<input name=\"w2_hid\" id=\"w2_hid\" type=\"hidden\" class=\"autoCompleteHidden\" />" + "<input type=\"text\" id=\"w2\" name=\"w2\" onfocus=\"setupAutocomplete\\(this, 'conceptSearch.form','1,2,3','null'\\); \"class=\"autoCompleteText\" onBlur=\"onBlurAutocomplete\\(this\\)\"/>" + "<input id=\"w2_button\" type=\"button\" class=\"addConceptButton\" value=\"Add\" /></div>", html); }