Ejemplo n.º 1
0
        public void AddFileFailureTest()
        {
            using (var db = new GameDbTestWrapper())
            {
                var testId   = Guid.NewGuid();
                var filesDir = Path.Combine(db.DbDirectory, "files", testId.ToString());

                void testImage(string path)
                {
                    Assert.IsNull(db.DB.AddFile(path, testId, true));
                    Assert.IsTrue(!Directory.Exists(filesDir) || Directory.GetFiles(filesDir, "*.*").Count() == 0);
                    FileSystem.DeleteDirectory(filesDir);
                }

                // Missing http file
                testImage(@"https://playnite.link/doesntexists.png");

                // Missing local file
                testImage(@"c:\dir\nope.png");

                // Http exe no icon file
                testImage(@"https://playnite.link/NoIcon.exe");

                // Non-image filed
                testImage(Path.Combine(PlayniteTests.ResourcesPath, "Images", "NoIcon.exe"));
            }
        }
Ejemplo n.º 2
0
        public void AddFileTest()
        {
            using (var db = new GameDbTestWrapper())
            {
                var testId   = Guid.NewGuid();
                var filesDir = Path.Combine(db.DbDirectory, "files", testId.ToString());

                void testImage(string path, string resFilter, string addedExt, bool addAsImage)
                {
                    var newPath = db.DB.AddFile(path, testId, addAsImage);

                    Assert.IsNotNull(newPath);
                    StringAssert.EndsWith(addedExt, newPath);
                    Assert.AreEqual(1, Directory.GetFiles(filesDir, resFilter).Count());
                    FileSystem.DeleteDirectory(filesDir);
                }

                void testImageMeta(MetadataFile file, string resFilter)
                {
                    Assert.IsNotNull(db.DB.AddFile(file, testId, true));
                    Assert.AreEqual(1, Directory.GetFiles(filesDir, resFilter).Count());
                    FileSystem.DeleteDirectory(filesDir);
                }

                // Standard image local file
                testImage(Path.Combine(PlayniteTests.ResourcesPath, "Images", "applogo.png"), "*.png", ".png", true);

                // Standard image htpp file
                testImage(@"https://playnite.link/applogo.png", "*.png", ".png", true);

                // Standard image content file
                var contentImage = File.ReadAllBytes(Path.Combine(PlayniteTests.ResourcesPath, "Images", "applogo.png"));
                testImageMeta(new MetadataFile("test.png", contentImage), "*.png");

                // Local exe icon file
                testImage(Path.Combine(PlayniteTests.ResourcesPath, "Images", "YesIcon.exe"), "*.ico", ".ico", true);

                // Http exe icon file
                testImage(@"https://playnite.link/YesIcon.exe", "*.ico", ".ico", true);

                // No image
                testImage(Path.Combine(PlayniteTests.ResourcesPath, "Images", "YesIcon.exe"), "*.exe", ".exe", false);

                // No image http
                testImage(@"https://playnite.link/YesIcon.exe", "*.exe", ".exe", false);
            }
        }
Ejemplo n.º 3
0
        public void ImageFilePathReuseTest()
        {
            using (var db = new GameDbTestWrapper())
            {
                var testId   = Guid.NewGuid();
                var filesDir = Path.Combine(db.DbDirectory, "files", testId.ToString());
                FileSystem.CreateDirectory(filesDir, true);

                File.Copy(
                    Path.Combine(PlayniteTests.ResourcesPath, "Images", "applogo.png"),
                    Path.Combine(filesDir, "newFile.png"));

                var resFile = db.DB.AddFile(Path.Combine(filesDir, "newFile.png"), testId, true);
                Assert.AreEqual(testId + "\\" + "newFile.png", resFile);
                Assert.AreEqual(1, Directory.GetFiles(filesDir, "*.*").Count());
            }
        }