// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.responders.editing; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import fitnesse.wiki.*; import org.junit.Before; import org.junit.Test; import fitnesse.wiki.fs.InMemoryPage; public class SaveRecorderTest { public WikiPage somePage; public WikiPage root; @Before public void setUp() throws Exception { root = InMemoryPage.makeRoot("RooT"); somePage = WikiPageUtil.addPage(root, PathParser.parse("SomePage"), "some page"); } @Test public void testTiming() throws Exception { PageData data = somePage.getData(); long savedTicket = 0; long editTicket = 1; long time = SaveRecorder.pageSaved(somePage, savedTicket); somePage.commit(data); assertTrue(SaveRecorder.changesShouldBeMerged(time - 1, editTicket, somePage)); assertFalse(SaveRecorder.changesShouldBeMerged(time + 1, editTicket, somePage)); } @Test public void testDefaultValues() throws Exception { WikiPage neverSaved = WikiPageUtil.addPage(root, PathParser.parse("NeverSaved"), "never saved"); assertFalse(SaveRecorder.changesShouldBeMerged(12345, 0, neverSaved)); } @Test public void testCanSaveOutOfOrderIfFromSameEditSession() throws Exception { PageData data = somePage.getData(); long ticket = 99; long time = SaveRecorder.pageSaved(somePage, ticket); somePage.commit(data); assertFalse(SaveRecorder.changesShouldBeMerged(time-1, ticket, somePage)); } }