143 lines
6.1 KiB
C#
143 lines
6.1 KiB
C#
using VideoDownloader.Core.Config;
|
|
using VideoDownloader.Tests.Infrastructure;
|
|
|
|
namespace VideoDownloader.Tests.E2E;
|
|
|
|
/// <summary>
|
|
/// UI 복잡 버전 RED 스펙 — §I 라이브러리·재생목록·즐겨찾기·기록·노트 유즈케이스(docs/UI_USECASES.md §I, UC-M01~M22).
|
|
/// 데스크톱 앱에는 아직 라이브러리 뷰가 없으므로 전부 RED 다.
|
|
/// </summary>
|
|
public class UiUsecaseLibraryRedTests
|
|
{
|
|
[Fact]
|
|
public void UC_M01_라이브러리_뷰가_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibraryPopup") || SourceTree.MainWindowXaml.Contains("LibraryBtn"),
|
|
"UC-M01", "받은 파일을 보는 라이브러리 뷰(LibraryPopup/LibraryBtn)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M02_라이브러리를_그리드_리스트로_전환한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibraryViewToggle"),
|
|
"UC-M02", "그리드/리스트 전환(LibraryViewToggle)이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M03_라이브러리를_검색할_수_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibrarySearchBox"),
|
|
"UC-M03", "라이브러리 검색 상자(LibrarySearchBox)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M04_라이브러리를_정렬할_수_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibrarySortMenu"),
|
|
"UC-M04", "라이브러리 정렬 메뉴(LibrarySortMenu)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M05_항목에_추가일이_표시된다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("AddedDateText"),
|
|
"UC-M05", "라이브러리 항목의 추가일 표시(AddedDateText)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M06_항목에_썸네일이_표시된다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibraryThumbnail"),
|
|
"UC-M06", "라이브러리 썸네일(LibraryThumbnail)이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M07_항목을_더블클릭해_재생한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("LibraryPlay_Click"),
|
|
"UC-M07", "라이브러리 재생(LibraryPlay_Click) 처리기가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M08_항목을_삭제할_수_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("LibraryDelete_Click"),
|
|
"UC-M08", "라이브러리 삭제(LibraryDelete_Click) 처리기가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M09_항목_폴더를_열_수_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("LibraryOpenFolder_Click"),
|
|
"UC-M09", "라이브러리 폴더 열기(LibraryOpenFolder_Click)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M10_라이브러리_빈_상태_안내가_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("LibraryEmptyHint"),
|
|
"UC-M10", "라이브러리 빈 상태 안내(LibraryEmptyHint)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M11_재생목록_셔플이_있다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("PlaylistShuffle"),
|
|
"UC-M11", "재생목록 셔플(PlaylistShuffle) 요소가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M12_반복_모드가_저장된다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.PropertyExists(typeof(AppConfig), "PlaylistLoopMode"),
|
|
"UC-M12", "AppConfig.PlaylistLoopMode 속성이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M13_재생목록을_파일로_저장_불러온다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("PlaylistExport"),
|
|
"UC-M13", "재생목록 내보내기/불러오기(PlaylistExport)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M14_재생목록_순서를_바꾼다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("PlaylistMoveUp"),
|
|
"UC-M14", "재생목록 순서 변경(PlaylistMoveUp) 요소가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M15_재생목록을_검색한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("PlaylistSearchBox"),
|
|
"UC-M15", "재생목록 검색 상자(PlaylistSearchBox)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M16_즐겨찾기를_폴더로_정리한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("BookmarkFolder"),
|
|
"UC-M16", "즐겨찾기 폴더(BookmarkFolder) 기능이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M17_즐겨찾기를_편집한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("EditBookmark"),
|
|
"UC-M17", "즐겨찾기 편집(EditBookmark) 기능이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M18_즐겨찾기를_검색한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("BookmarkSearchBox"),
|
|
"UC-M18", "즐겨찾기 검색 상자(BookmarkSearchBox)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M19_즐겨찾기를_HTML로_내보낸다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("ExportBookmarks"),
|
|
"UC-M19", "즐겨찾기 내보내기(ExportBookmarks) 기능이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M20_방문_기록을_날짜별로_묶는다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowCs.Contains("GroupHistoryByDate"),
|
|
"UC-M20", "방문 기록 날짜 묶음(GroupHistoryByDate) 기능이 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M21_방문_기록을_검색한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("HistorySearchBox"),
|
|
"UC-M21", "방문 기록 검색 상자(HistorySearchBox)가 필요하다");
|
|
|
|
[Fact]
|
|
public void UC_M22_노트를_검색한다()
|
|
=> SourceTree.Usecase(
|
|
SourceTree.MainWindowXaml.Contains("NotesSearchBox"),
|
|
"UC-M22", "노트 검색 상자(NotesSearchBox)가 필요하다");
|
|
}
|