public void LaunchDialog_CustomUrlSourceWontBeFound() { using (var source = new TemporaryFolder("CloneDialogTest")) { Directory.CreateDirectory(source.Combine("repo1")); HgRepository.CreateRepositoryInExistingDir(source.Combine("repo1"), new NullProgress()); LaunchCustomUrl(@"somewhereElse"); } }
public void GetDirectoriesWithMecurialRepos_OneDriveOneRepo_ReturnsRepoPath() { using (var usb = new TemporaryFolder("clonetestUsb")) { Directory.CreateDirectory(usb.Combine("test")); Directory.CreateDirectory(usb.Combine("testrepo",".hg")); var model = new CloneFromUsb(); var drives = new List<IUsbDriveInfo>(); drives.Add(new UsbDriveInfoForTests(usb.Path)); model.DriveInfoRetriever = new RetrieveUsbDriveInfoForTests(drives); Assert.AreEqual(1, model.GetDirectoriesWithMecurialRepos().Count()); Assert.AreEqual(usb.Combine("testrepo"), model.GetDirectoriesWithMecurialRepos().First()); } }
public void GetDirectoriesWithMecurialRepos_TwoRepos_ReturnsOnlyUnfilteredPath() { using (var usb = new TemporaryFolder("clonetestUsb")) { Directory.CreateDirectory(usb.Combine("test1")); Directory.CreateDirectory(usb.Combine("test1", ".hg")); Directory.CreateDirectory(usb.Combine("testSKIP")); Directory.CreateDirectory(usb.Combine("testSKIP", ".hg")); var model = new CloneFromUsb(); var drives = new List<IUsbDriveInfo>(); drives.Add(new UsbDriveInfoForTests(usb.Path)); model.DriveInfoRetriever = new RetrieveUsbDriveInfoForTests(drives); model.ProjectFilter = path => !path.Contains("SKIP"); Assert.AreEqual(1, model.GetDirectoriesWithMecurialRepos().Count()); } }
public TempLiftFile(string fileName, TemporaryFolder parentFolder, string xmlOfEntries, string claimedLiftVersion) : base(true) // True means "I'll set the the pathname, thank you very much." Otherwise, the temp one 'false' creates will stay forever, and fill the hard drive up. { _path = parentFolder.Combine(fileName); string liftContents = string.Format("<?xml version='1.0' encoding='utf-8'?><lift version='{0}'>{1}</lift>", claimedLiftVersion, xmlOfEntries); File.WriteAllText(_path, liftContents); }
public TemporaryFolder(TemporaryFolder parent, string name) { _path = parent.Combine(name); if (Directory.Exists(_path)) { TestUtilities.DeleteFolderThatMayBeInUse(_path); } Directory.CreateDirectory(_path); }
public void Clone_Test() { // RobustNetworkOperation.ClearCredentialSettings(); using (var f = new TemporaryFolder("clonetest")) { HgRepository.Clone(new HttpRepositoryPath("cloneableTestProjectUrl", _cloneableTestProjectUrl, false), f.Path, _progress); Assert.IsTrue(Directory.Exists(f.Combine(f.Path, ".hg"))); } }
public void Pull_Test() { //RobustNetworkOperation.ClearCredentialSettings(); using (var f = new TemporaryFolder("pulltest")) { var repo = HgRepository.CreateOrUseExisting(f.Path, _progress); var address = new HttpRepositoryPath("default", _cloneableTestProjectUrl, false); repo.Pull(address, _cloneableTestProjectUrl); Assert.IsTrue(Directory.Exists(f.Combine(f.Path, ".hg"))); } }
public void GetDirectoriesWithMecurialRepos_OneDriveAndDirectoryButNotRep_ReturnsEmptyList() { using (var usb = new TemporaryFolder("clonetestUsb")) { Directory.CreateDirectory(usb.Combine("tests")); var model = new CloneFromUsb(); var drives = new List<IUsbDriveInfo>(); drives.Add(new UsbDriveInfoForTests(usb.Path)); model.DriveInfoRetriever = new RetrieveUsbDriveInfoForTests(drives); Assert.AreEqual(0, model.GetDirectoriesWithMecurialRepos().Count()); } }
public static TempFile CreateXmlFileWithContents(string fileName, TemporaryFolder folder, string xmlBody) { string path = folder.Combine(fileName); using (var reader = XmlReader.Create(new StringReader(xmlBody))) { using (var writer = XmlWriter.Create(path, CanonicalXmlSettings.CreateXmlWriterSettings())) { writer.WriteStartDocument(); writer.WriteNode(reader, false); } } return(new TempFile(path, true)); }
public void PullThenPush_Test() { // RobustNetworkOperation.ClearCredentialSettings(); using (var f = new TemporaryFolder("pulltest")) { var repo = HgRepository.CreateOrUseExisting(f.Path, _progress); var address = new HttpRepositoryPath("default", _cloneableTestProjectUrl, false); repo.Pull(address, _cloneableTestProjectUrl); Assert.IsTrue(Directory.Exists(f.Combine(f.Path, ".hg"))); //nb: this is safe to do over an over, because it will just say "no changes found", never actually add a changeset repo.Push(address, _cloneableTestProjectUrl); } }
public void LaunchDialog_SimulatedUsb_ProjectAlreadyExists() { using (var targetComputer = new TemporaryFolder("clonetest-targetComputer")) using (var usb = new TemporaryFolder("clonetest-Usb")) { Directory.CreateDirectory(usb.Combine("repo1")); HgRepository.CreateRepositoryInExistingDir(usb.Combine("repo1"), new NullProgress()); //ok, the point here is that we already haved something called "repo1" Directory.CreateDirectory(targetComputer.Combine("repo1")); using (var dlg = new GetCloneFromUsbDialog(targetComputer.Path)) { var drives = new List<IUsbDriveInfo>(); drives.Add(new UsbDriveInfoForTests(usb.Path)); //don't look at the actual drives, look at our simulations dlg.Model.DriveInfoRetriever = new RetrieveUsbDriveInfoForTests(drives); if (DialogResult.OK != dlg.ShowDialog()) return; } } }
public void ChangePicture_PictureIsFromOutsideProject_PictureCopiedAndAttributeChanged() { var dom = new XmlDocument(); dom.LoadXml("<html><body><div/><div><img id='one'/><img id='two' src='old.png'/></div></body></html>"); var model = new PageEditingModel(); using (var src = new TemporaryFolder("bloom pictures test source")) using (var dest = new TemporaryFolder("bloom picture tests dest")) { var newImagePath = src.Combine("new.png"); using (var original = MakeSamplePngImage(newImagePath)) { model.ChangePicture(dest.Path, dom, "two", original); Assert.IsTrue(File.Exists(dest.Combine("new.png"))); AssertThatXmlIn.Dom(dom).HasSpecifiedNumberOfMatchesForXpath(@"//img[@id='two' and @src='new.png']", 1); } } }
public void ChangePicture_PictureIsJpg_StaysJpg() { var dom = new XmlDocument(); dom.LoadXml("<html><body><div/><div><img id='one'/><img id='two' src='old.png'/></div></body></html>"); var model = new PageEditingModel(); using (var src = new TemporaryFolder("bloom pictures test source")) using (var dest = new TemporaryFolder("bloom picture tests dest")) using (var original = MakeSampleJpegImage(src.Combine("new.jpg"))) { model.ChangePicture(dest.Path, dom, "two", original); Assert.IsTrue(File.Exists(dest.Combine("new.jpg"))); AssertThatXmlIn.Dom(dom).HasSpecifiedNumberOfMatchesForXpath(@"//img[@id='two' and @src='new.jpg']", 1); using (var converted = Image.FromFile(dest.Combine("new.jpg"))) { Assert.AreEqual(ImageFormat.Jpeg.Guid, converted.RawFormat.Guid); } } }
public void ChangePicture_AlreadyHaveACopyInPublicationFolder_PictureUpdated() { var dom = new XmlDocument(); dom.LoadXml("<html><body><div/><div><img id='one'/><img id='two' src='old.png'/></div></body></html>"); var model = new PageEditingModel(); using (var src = new TemporaryFolder("bloom pictures test source")) using (var dest = new TemporaryFolder("bloom picture tests dest")) { var dogImagePath = src.Combine("dog.png"); using (var original = MakeSamplePngImage(dogImagePath)) { var destDogImagePath = dest.Combine("dog.png"); File.WriteAllText(destDogImagePath, "old dog"); model.ChangePicture(dest.Path, dom, "two", original); Assert.IsTrue(Image.FromFile(destDogImagePath).Width == kSampleImageDimension); } } }
public void EnsureTheseExtensionAreEnabled_someOthersEnabledAlready_StayEnabled() { using (new MercurialIniForTests()) using (var testRoot = new TemporaryFolder("ChorusHgSettingsTest")) { HgRepository.CreateRepositoryInExistingDir(testRoot.Path, _progress); var repository = new HgRepository(testRoot.Path, new ConsoleProgress()); File.WriteAllText(testRoot.Combine(Path.Combine(".hg", "hgrc")), @" [extensions] a = x = "); var extensions = new Dictionary<string, string>(); extensions.Add("a", ""); extensions.Add("b", ""); repository.EnsureTheseExtensionsAndFormatSet(extensions); Assert.AreEqual(3, repository.GetEnabledExtension().Count()); Assert.AreEqual("a", repository.GetEnabledExtension().ToArray()[0]); Assert.AreEqual("x", repository.GetEnabledExtension().ToArray()[1]); Assert.AreEqual("b", repository.GetEnabledExtension().ToArray()[2]); } }
public void GetFilesInRevision_MultipleRevisionsInRepo_GivesCorrectFiles() { using (var testRoot = new TemporaryFolder("ChorusRetrieveTest")) { var temp = testRoot.Combine("filename with spaces"); File.WriteAllText(temp, "one"); using (var f = TempFile.TrackExisting(temp)) { HgRepository.CreateRepositoryInExistingDir(testRoot.Path,_progress); var repo = new HgRepository(testRoot.Path, _progress); repo.AddAndCheckinFile(f.Path); repo.Commit(true, "initial"); File.WriteAllText(f.Path, "one two"); repo.Commit(true, "second"); var revisions = repo.GetAllRevisions(); Assert.AreEqual(2, revisions.Count); var files = repo.GetFilesInRevision(revisions[0]); Assert.AreEqual(1, files.Count()); Assert.AreEqual(f.Path, files.First().FullPath); } } }
public void RoundTripPng_InPathWithNonAsciiCharacters() { var mediaFile = new Bitmap(10, 10); using (var folder = new TemporaryFolder("LibPalaso exiftool Test with non-áscii chárácters")) { var path = folder.Combine("test.png"); mediaFile.Save(path); var outgoing = Metadata.FromFile(path); outgoing.Creator = "joe shmo"; outgoing.Write(); Assert.AreEqual("joe shmo", Metadata.FromFile(path).Creator); } }
private bool GetIsReady(string pathsSectionContents) { string contents = @"[paths]" + Environment.NewLine + pathsSectionContents+Environment.NewLine; using (var testRoot = new TemporaryFolder("ChorusHgSettingsTest")) { HgRepository.CreateRepositoryInExistingDir(testRoot.Path, _progress); File.WriteAllText(testRoot.Combine(Path.Combine(".hg", "hgrc")), contents); var repo = new HgRepository(testRoot.Path, _progress); string msg; bool ready= repo.GetIsReadyForInternetSendReceive(out msg); Console.WriteLine(msg); return ready; } }
public void GetKnownRepositories_TwoInRepoSettings_GivesThem() { using (new MercurialIniForTests()) using (var testRoot = new TemporaryFolder("ChorusHgSettingsTest")) { HgRepository.CreateRepositoryInExistingDir(testRoot.Path, _progress); File.WriteAllText(testRoot.Combine(Path.Combine(".hg","hgrc")), @" [paths] one = c:\intentionally bogus two = http://foo.com"); var repo = new HgRepository(testRoot.Path, _progress); var sources = repo.GetRepositoryPathsInHgrc(); Assert.AreEqual(2, sources.Count()); Assert.AreEqual(@"c:\intentionally bogus" ,sources.First().URI); Assert.AreEqual(@"http://foo.com", sources.Last().URI); Assert.AreEqual(@"one" ,sources.First().Name); Assert.AreEqual(@"two", sources.Last().Name); } }
public void Setup() { ErrorReport.IsOkToInteractWithUser = false; _fileLocator = new FileLocator(new string[] { FileLocator.GetDirectoryDistributedWithApplication( "factoryCollections"), FileLocator.GetDirectoryDistributedWithApplication( "factoryCollections", "Templates", "Basic Book"), FileLocator.GetDirectoryDistributedWithApplication( "xMatter") }); _fixtureFolder = new TemporaryFolder("BloomBookStorageTest"); _folder = new TemporaryFolder(_fixtureFolder,"theBook"); _bookPath = _folder.Combine("theBook.htm"); }
public void Play_GiveThaiFileName_ShouldHearTwoSounds() { using (var d = new TemporaryFolder("palaso media test")) { var soundPath = d.Combine("ก.wav"); File.Create(soundPath).Close(); using (var f = TempFile.TrackExisting(soundPath)) { var w = new BackgroundWorker(); w.DoWork += new DoWorkEventHandler((o, args) => SystemSounds.Exclamation.Play()); var x = AudioFactory.AudioSession(f.Path); x.StartRecording(); w.RunWorkerAsync(); Thread.Sleep(1000); x.StopRecordingAndSaveAsWav(); var y = AudioFactory.AudioSession(f.Path); y.Play(); Thread.Sleep(1000); y.StopPlaying(); } } }
private void Launch() { using (var targetComputer = new TemporaryFolder("clonetest-targetComputer")) using (var dest = new TemporaryFolder("clonetest")) { Directory.CreateDirectory(dest.Combine("repo1")); HgRepository.CreateRepositoryInExistingDir(dest.Combine("repo1"), new NullProgress()); //ok, the point here is that we already haved something called "repo1" Directory.CreateDirectory(targetComputer.Combine("repo1")); using (var dlg = new GetCloneFromInternetDialog(targetComputer.Path)) { if (DialogResult.OK != dlg.ShowDialog()) return; } } }
public TempFileFromFolder(TemporaryFolder parentFolder, string name, string contents) : base(true) // True means "I'll set the the pathname, thank you very much." Otherwise, the temp one 'false' creates will stay forever, and fill the hard drive up. { _path = parentFolder.Combine(name); File.WriteAllText(_path, contents); }
public void GetDirectoriesWithMecurialRepos_WithRepo2DeepIsNotFound() { using (var usb1 = new TemporaryFolder("clonetestUsb1")) { Directory.CreateDirectory(usb1.Combine("a", "repo1", ".hg")); var model = new CloneFromUsb(); var drives = new List<IUsbDriveInfo>(); drives.Add(new UsbDriveInfoForTests(usb1.Path)); model.DriveInfoRetriever = new RetrieveUsbDriveInfoForTests(drives); Assert.AreEqual(0, model.GetDirectoriesWithMecurialRepos().Count()); } }
public void SetBookName_FolderWithNameAlreadyExists_AddsANumberToName() { using (var original = new TemporaryFolder(_folder, "original")) using (var x = new TemporaryFolder(_folder, "foo")) using (var y = new TemporaryFolder(_folder, "foo1")) using (var z = new TemporaryFolder(_folder, "foo2")) { File.WriteAllText(Path.Combine(original.Path, "original.htm"), "<html><head> href='file://blahblah\\editMode.css' type='text/css' /></head><body><div class='bloom-page'></div></body></html>"); var storage = new BookStorage(original.Path, _fileLocator, new BookRenamedEvent(), new CollectionSettings()); storage.Save(); Directory.Delete(z.Path); //so, we ask for "foo", but should get "foo2", because there is already a foo and foo1 var newBookName = Path.GetFileName(x.Path); storage.SetBookName(newBookName); var newPath = z.Combine("foo2.htm"); Assert.IsTrue(Directory.Exists(z.Path), "Expected folder:" + z.Path); Assert.IsTrue(File.Exists(newPath), "Expected file:" + newPath); } }
public void MakeClone_NoProblems_MakesClone() { using(var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.IsTrue(Directory.Exists(f.Combine(RepositorySetup.ProjectName, ".hg"))); } }
public void MakeClone_TargetExists_CreatesCloneInAnotherFolder() { using (var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; var extantFolder = f.Combine(RepositorySetup.ProjectName); Directory.CreateDirectory(extantFolder); // Make a subfolder, which will force it to make a new folder, since an empty folder is deleted. var extantSubfolderPath = Path.Combine(extantFolder, "ChildFolder"); Directory.CreateDirectory(extantSubfolderPath); var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.AreEqual(extantFolder + "1", cloneFolder); Assert.IsTrue(Directory.Exists(extantFolder + "1")); } }
public void MakeClone_TargetExists_CreatesCloneInWhenTargetIsEmpty() { using (var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; var extantFolder = f.Combine(RepositorySetup.ProjectName); Directory.CreateDirectory(extantFolder); var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.AreEqual(extantFolder, cloneFolder); Assert.IsTrue(Directory.Exists(extantFolder)); Assert.IsFalse(Directory.Exists(extantFolder + "1")); } }
public void MakeListItemWhenAlreadyHaveProjectName_MakesDisabledItem() { using (var usb = new TemporaryFolder("clonetestUsb")) { var path = usb.Combine("test1"); Directory.CreateDirectory(path); Directory.CreateDirectory(usb.Combine("test1", ".hg")); var model = new CloneFromUsb(); model.ExistingProjects = new HashSet<string> {"test1"}; var item = model.CreateListItemFor(path); Assert.That(item, Is.Not.Null, "model should have made a list item"); Assert.That(item.Text, Is.EqualTo("test1")); Assert.That(item.Tag, Is.EqualTo(path)); var last = File.GetLastWriteTime(path); string expectedSubitem = last.ToShortDateString() + " " + last.ToShortTimeString(); // Not a great test, basically duplicates the impl Assert.That(item.SubItems[1].Text, Is.EqualTo(expectedSubitem)); Assert.That(item.ToolTipText, Is.EqualTo(CloneFromUsb.ProjectWithSameNameExists)); Assert.That(item.ImageIndex, Is.EqualTo(2)); Assert.That(item.ForeColor, Is.EqualTo(CloneFromUsb.DisabledItemForeColor)); } }
public void SaveSettings_PrexistsButWeChangePasswordAndSave_ChangesPassword() { using (var folder = new TemporaryFolder("ServerSettingsModel")) { // Precondition is some url that is not our default from the ServerSettingsModel var original = HgRepository.CreateOrUseExisting(folder.Path, new NullProgress()); original.SetKnownRepositoryAddresses(new[] { new HttpRepositoryPath("languagedepot.org [legacy sync]", "http://*****:*****@hg-public.languagedepot.org/tpi", false) }); var m = new ServerSettingsModel(); m.InitFromProjectPath(folder.Path); m.Password = "******"; m.SaveSettings(); Assert.IsTrue(Directory.Exists(folder.Combine(".hg"))); Assert.IsTrue(File.Exists(folder.Combine(".hg", "hgrc"))); var repo = HgRepository.CreateOrUseExisting(folder.Path, new NullProgress()); var address = repo.GetDefaultNetworkAddress<HttpRepositoryPath>(); Assert.AreEqual("http://*****:*****@hg-public.languagedepot.org/tpi", address.URI); Assert.AreEqual("newPassword", address.Password); } }
public void SaveSettings_NoHgFolderExists_CreatesOneWithCorrectPath() { using (var folder = new TemporaryFolder("ServerSettingsModel")) { var m = new ServerSettingsModel(); var url = "http://*****:*****@hg-public.languagedepot.org/tpi"; m.InitFromProjectPath(folder.Path); m.SetUrlToUseIfSettingsAreEmpty(url); m.SaveSettings(); Assert.IsTrue(Directory.Exists(folder.Combine(".hg"))); Assert.IsTrue(File.Exists(folder.Combine(".hg","hgrc"))); var repo = HgRepository.CreateOrUseExisting(folder.Path, new NullProgress()); var address = repo.GetDefaultNetworkAddress<HttpRepositoryPath>(); Assert.AreEqual("languageDepot.org[safemode]".ToLower(), address.Name.ToLower()); Assert.AreEqual(url, address.URI); } }
public void MakeListItem_MakesNormalItem() { using (var usb = new TemporaryFolder("clonetestUsb")) { var path = usb.Combine("test1"); Directory.CreateDirectory(path); Directory.CreateDirectory(usb.Combine("test1", ".hg")); var model = new CloneFromUsb(); var item = model.CreateListItemFor(path); Assert.That(item, Is.Not.Null, "model should have made a list item"); Assert.That(item.Text, Is.EqualTo("test1")); Assert.That(item.Tag, Is.EqualTo(path)); var last = File.GetLastWriteTime(path); string expectedSubitem = last.ToShortDateString() + " " + last.ToShortTimeString(); // Not a great test, basically duplicates the impl Assert.That(item.SubItems[1].Text, Is.EqualTo(expectedSubitem)); Assert.That(item.ToolTipText, Is.EqualTo(path)); Assert.That(item.ImageIndex, Is.EqualTo(0)); Assert.That(item.BackColor, Is.EqualTo(Color.FromKnownColor(KnownColor.Window))); Assert.That(item.ForeColor, Is.EqualTo(Color.FromKnownColor(KnownColor.WindowText))); } }
private void ChangeNameAndCheck(TemporaryFolder newFolder, BookStorage storage) { var newBookName = Path.GetFileName(newFolder.Path); storage.SetBookName(newBookName); var newPath = newFolder.Combine(newBookName+".htm"); Assert.IsTrue(Directory.Exists(newFolder.Path), "Expected folder:" + newFolder.Path); Assert.IsTrue(File.Exists(newPath), "Expected file:" +newPath); }