MonkAlex / MangaReader

Help to download updates from online manga readers.
http://monkalex.github.io/MangaReader/
MIT License
51 stars 6 forks source link

Тесты и корректная обработка символов для имен папок и файлов #128

Closed MonkAlex closed 5 years ago

MonkAlex commented 5 years ago

Для линукса сейчас считается что можно использовать любые символы.

Для винды список частично с АПИ, частично забит руками. В целом, лучше реализовать и проверить список отсюда

MonkAlex commented 5 years ago

Возможно стоит пересмотреть апи по работе с файлами-папками и их нормализацией. Правда, это усложнит хранение путей, а этого бы сильно не хотелось.

MonkAlex commented 5 years ago

Печальный проверочный кейс, где всё навернулось:

  1. Добавить новую мангу
  2. Переименовать её в ...
  3. Скачать (или сжать, оба действия что-то наделают в корне)
  4. Вернуть родное имя

В итоге на 4 циклически само себя копирует сидит на 3 пункте тоже не круто, что работает в корне папки загрузки -- сжимает рандомные папки (почему то не все)

MonkAlex commented 5 years ago

Итого, что делаем:

  1. Валидируем папки настроек. Папки должны существовать или находиться внутри папки программы. Не должны оканчиваться относительными путями.
  2. Валидируем имена манги и её папок отдельно - никаких относительных путей и разделителей.

ПС: дополнительно - не даем мувать в папку и саму папку настроек. аналогично со сжатием.

MonkAlex commented 5 years ago

Валидации сделаны. Перемещения и упаковку надо делать, плюс на них тоже нужны тесты. Из явно кривых кейсов - перемещение "настроек" в папку конкретной манги. А потом обратно.

MonkAlex commented 5 years ago

В итоге просто запретил перемещать папку настроек в папку манги. Обратно кейса в итоге тоже не должно быть. ПС: сжатие в итоге работает ровно с теми же папками, отдельно тестами не покрыто.