public void testConvertWithRequiredConverters()

in src/main/java/com/atlassian/uwc/ui/ConverterEngineTest.java [3281:3465]


	public void testConvertWithRequiredConverters() {
		//creating stubs
		Page page1 = new Page(null); //arg must be NULL, otherwise engine fails on read
		Page page2 = new Page(null);
		Page page3 = new Page(null);
		Page page4 = new Page(null);
		Page page5 = new Page(null);
		Page page6 = new Page(null);
		Page page7 = new Page(null); // test real hashes
		Page page8 = new Page(null); // test real carats
		
		String name1 = "Testing";
		String name2 = "Testing:1#2;3";
		String name3 = "Testing Escaped Brackets";
		String name4 = "Too [ManyBrackets";
		String name5 = "Testing%20Entities";
		String name6 = "Testing Code Blocks";
		String name7 = "Testing Hashes";
		String name8 = "Testing Carats";
		String content1 = "See [Testing:1#2;3]"; //needs to change
		String content2 = "See [alias|Testing]"; //needs to _not_ change
		String content3 = "Testing \\[Escaped [brackets]";
		String content4 = "Testing [Too [ManyBrackets]";
		String content5 = "[Testing%20Entities]";
		String content6 = "[Testing Escaped Brackets] and {code} [[don't replace here]] {code}";
		String content7 = "[Testing Escaped Brackets#anchor]";
		String content8 = "[^file.gif]";
		
		page1.setName(name1);
		page1.setOriginalText(content1);
		page1.setConvertedText(content1); //ConverterEngine expects this
		page2.setName(name2);
		page2.setOriginalText(content2);
		page2.setConvertedText(content2);
		page3.setName(name3);
		page3.setOriginalText(content3);
		page3.setConvertedText(content3);
		page4.setName(name4);
		page4.setOriginalText(content4);
		page4.setConvertedText(content4);
		page5.setName(name5);
		page5.setOriginalText(content5);
		page5.setConvertedText(content5);
		page6.setName(name6);
		page6.setOriginalText(content6);
		page6.setConvertedText(content6);
		page7.setName(name7);
		page7.setOriginalText(content7);
		page7.setConvertedText(content7);
		page8.setName(name8);
		page8.setOriginalText(content8);
		page8.setConvertedText(content8);


		ArrayList<Page> pages = new ArrayList<Page>();
		pages.add(page1);
		pages.add(page2);
		pages.add(page3);
		pages.add(page4);
		pages.add(page5);
		pages.add(page6);
		pages.add(page7);
		pages.add(page8);
		
		//create expectations
		int expectedSize = pages.size();
		String expName1 = name1;
		String expName2 = "Testing.1No.2.3";
		String expCon1 = "See [" + expName2 + "]";
		String expCon2 = content2;
		String expName3 = name3;
		String expCon3 = content3;
		String expName4 = "Too (ManyBrackets";
		String expCon4 = "Testing [Too (ManyBrackets]";
		String expName5 = "Testing Entities";
		String expCon5 = "[Testing Entities]";
		String expName6 = name6;
		String expCon6 = content6;
		String expName7 = name7;
		String expCon7 = content7;
		String expName8 = name8;
		String expCon8 = content8;
		
		//set urldecoding property
		tester.handleNonConverterProperty("abc.0000.illegalnames-urldecode.property=true");
		
		//do the tests
		tester.handleIllegalHandling("enable", "true");
		tester.convertWithRequiredConverters(pages);

		assertNotNull(pages);
		assertEquals(expectedSize, pages.size());

		Page actPage1 = pages.remove(0);
		Page actPage2 = pages.remove(0);
		Page actPage3 = pages.remove(0);
		Page actPage4 = pages.remove(0);
		Page actPage5 = pages.remove(0);
		Page actPage6 = pages.remove(0);
		Page actPage7 = pages.remove(0);
		Page actPage8 = pages.remove(0);
		
		assertTrue(pages.isEmpty());

		String actName1 = actPage1.getName();
		String actCon1 = actPage1.getConvertedText();
		String actName2 = actPage2.getName();
		String actCon2 = actPage2.getConvertedText();
		String actName3 = actPage3.getName();
		String actCon3 = actPage3.getConvertedText();
		String actName4 = actPage4.getName();
		String actCon4 = actPage4.getConvertedText();
		String actName5 = actPage5.getName();
		String actCon5 = actPage5.getConvertedText();
		String actName6 = actPage6.getName();
		String actCon6 = actPage6.getConvertedText();
		String actName7 = actPage7.getName();
		String actCon7 = actPage7.getConvertedText();
		String actName8 = actPage8.getName();
		String actCon8 = actPage8.getConvertedText();
		
		assertNotNull(actName1);
		assertNotNull(actCon1);
		assertNotNull(actName2);
		assertNotNull(actCon2);
		assertNotNull(actName3);
		assertNotNull(actCon3);
		assertNotNull(actName4);
		assertNotNull(actCon4);
		assertNotNull(actName5);
		assertNotNull(actCon5);
		assertNotNull(actName6);
		assertNotNull(actCon6);
		assertNotNull(actName7);
		assertNotNull(actCon7);
		assertNotNull(actName8);
		assertNotNull(actCon8);
		
		assertEquals(expName1, actName1);
//		assertEquals(expCon1, actCon1); //This one has mutilple problems FIXME
		assertEquals(expName2, actName2);
		assertEquals(expCon2, actCon2);
		assertEquals(expName3, actName3);
		assertEquals(expCon3, actCon3);
		assertEquals(expName4, actName4);
		assertEquals(expCon4, actCon4);
		assertEquals(expName5, actName5);
		assertEquals(expCon5, actCon5);
		assertEquals(expName6, actName6);
		assertEquals(expCon6, actCon6);
		assertEquals(expName7, actName7);
		assertEquals(expCon7, actCon7);
		assertEquals(expName8, actName8);
		assertEquals(expCon8, actCon8);
		
		//test when illegal handling has been disabled
		String props = "Mywiki.0001.switch.illegal-handling=false";
		//haven't set handler yet, so should be default
		ConverterEngine.HierarchyHandler handler = tester.getHierarchyHandler();
		assertEquals(ConverterEngine.HierarchyHandler.DEFAULT, handler);
		//setting the handler
		tester.handleNonConverterProperty(props);
		Page page9 = new Page(null);
		String name9 = "Testing:1#2;3";
		String content9 = "See [Testing:1#2;3]"; 
		page9.setName(name9);
		page9.setOriginalText(content9);
		page9.setConvertedText(content9); //ConverterEngine expects this
		ArrayList<Page> pagesB = new ArrayList<Page>();
		pagesB.add(page9);
		String expName9 = name9;
		String expCon9 = content9;
		tester.convertWithRequiredConverters(pagesB);

		assertNotNull(pagesB);

		Page actPage9 = pagesB.remove(0);
		String actName9 = actPage9.getName();
		String actCon9 = actPage9.getConvertedText();
		assertNotNull(actName9);
		assertNotNull(actCon9);
		assertEquals(expName9, actName9);
		assertEquals(expCon9, actCon9);
		
	}