# YOUELBLOCKS 테스트 체크리스트

**대상**: 깨끗한 워드프레스 설치, `WP_DEBUG` 켠 상태  
**목적**: 보안 보완 후 마이그레이션 페이지·관리자 AJAX·페이지 관리(manage_blocks·nonce) 동작 확인

---

## 사전 준비

1. **WP_DEBUG 켜기**  
   `wp-config.php`에 다음 추가:
   ```php
   define('WP_DEBUG', true);
   define('WP_DEBUG_LOG', true);   // 선택: wp-content/debug.log에 기록
   define('WP_DEBUG_DISPLAY', false); // 프로덕션에서는 false 권장
   ```
2. 브라우저에서 **캐시 비활성화** 또는 시크릿 모드 사용 (스크립트/스타일 변경 반영 확인용).
3. 관리자로 로그인한 상태에서 진행.

---

## 1. 마이그레이션 페이지 로드 / 스크립트 동작

| #   | 확인 항목                                      | 방법                                                                                                                                                                                                                                           | 통과 |
| --- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--: |
| 1.1 | 페이지 로드 시 PHP 오류 없음                   | **YOUELBLOCKS** → **데이터 관리** → 상단 탭 **🔄 필드명 마이그레이션** 클릭. 화면에 PHP 오류/경고가 없고, 페이지가 정상 렌더링되는지 확인.                                                                                                     |  ☐   |
| 1.2 | 인라인 스크립트 로드 (ob_start → ob_get_clean) | 같은 페이지에서 개발자도구(F12) → **Console** 탭. `Uncaught` 에러 없이, `youelblocks_admin_data`, `loadFormFields`, `handleSyncAction` 등이 정의되어 있는지 확인. (콘솔에 `typeof youelblocks_admin_data` 입력 시 `"object"` 등으로 나오면 OK) |  ☐   |
| 1.3 | 페이지 선택 시 필드 목록 로드                  | **페이지 선택** 드롭다운에서 폼이 있는 페이지 선택. 필드 목록이 AJAX로 로드되고, "마이그레이션 실행" 또는 "동기화 상태 확인" 버튼이 보이는지 확인.                                                                                             |  ☐   |
| 1.4 | 동기화 상태 확인 버튼                          | "동기화 상태 확인" 클릭 시 모달 또는 메시지가 뜨고, 콘솔에 AJAX 오류가 없는지 확인.                                                                                                                                                            |  ☐   |
| 1.5 | 마이그레이션 실행 (필드 선택 시)               | 필드 체크 후 "마이그레이션 실행" 클릭. 결과 메시지가 나오고, 콘솔/화면에 PHP·JS 오류가 없는지 확인.                                                                                                                                            |  ☐   |

**실패 시**: `wp-content/debug.log`와 브라우저 콘솔·네트워크 탭에서 오류 원인 확인.

---

## 2. 관리자 AJAX (테이블 구조, 동기화, 마이그레이션 등)

아래는 모두 **관리자 전용** AJAX이므로, 로그인한 관리자 계정으로 진행.

| #   | 확인 항목                                         | 방법                                                                                                                                                                      | 통과 |
| --- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--: |
| 2.1 | 테이블 구조 조회 (nonce)                          | 데이터 관리 등에서 테이블/폼 구조를 불러오는 동작 수행. 네트워크 탭에서 `admin-ajax.php` 요청이 **200**이고, 응답이 `success`인지 확인. (nonce 없이 요청하면 실패해야 함) |  ☐   |
| 2.2 | 동기화 실행 (ajax_run_sync)                       | 마이그레이션 탭에서 "동기화 상태 확인" 또는 "마이그레이션 실행" 후 실제 동기화 트리거. 요청 시 `nonce` 파라미터가 포함되고, 응답이 정상인지 확인.                         |  ☐   |
| 2.3 | 블록 테이블 구조 (ajax_get_block_table_structure) | 페이지/블록 편집 화면에서 폼 구조를 불러오는 기능이 있다면 사용. 동일하게 nonce 포함 요청이 성공하는지 확인.                                                              |  ☐   |
| 2.4 | 권한 없을 때 거부                                 | 관리자 로그아웃 후(또는 권한 없는 사용자로) 위 AJAX URL에 직접 POST 요청. **403/0** 또는 `보안 검증에 실패했습니다` 등으로 거부되는지 확인.                               |  ☐   |

---

## 3. 페이지 관리 (manage_blocks 링크 · nonce)

| #   | 확인 항목                       | 방법                                                                                                                                                                               | 통과 |
| --- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--: |
| 3.1 | 페이지 관리 진입                | **YOUELBLOCKS** → **페이지 관리** (또는 `admin.php?page=youelblocks-pages`). 목록이 나오고 PHP 오류가 없는지 확인.                                                                 |  ☐   |
| 3.2 | manage_blocks 링크에 nonce 포함 | 목록에서 특정 페이지의 "블록 관리" 등 **manage_blocks** 링크를 우클릭 → **링크 주소 복사**. URL에 `_wpnonce=...` 또는 `_wpnonce=` 가 포함되어 있는지 확인.                         |  ☐   |
| 3.3 | 정상 링크로 블록 관리 화면 표시 | 해당 "블록 관리" 링크를 클릭. `action=manage_blocks&page_id=...` 와 nonce가 있는 URL로 이동해, 블록 관리 화면이 정상 표시되는지 확인.                                              |  ☐   |
| 3.4 | nonce 없이 접근 시 거부         | 주소창에서 `_wpnonce` 쿼리만 제거한 URL로 직접 접근 (예: `...&action=manage_blocks&page_id=123` 만 남기고 nonce 제거). **보안 검증에 실패했습니다** 등 403/메시지로 막히는지 확인. |  ☐   |

---

## 4. 요약

- **1.** 마이그레이션 페이지: 로드·스크립트·AJAX 필드 로드·동기화/마이그레이션 실행
- **2.** 관리자 AJAX: 테이블/블록 구조, 동기화 등 nonce·권한으로 정상 동작·거부
- **3.** 페이지 관리: manage_blocks 링크에 nonce 포함, nonce 없이 접근 시 거부

모두 통과하면 보안 보완 후 동작이 정상인 것으로 판단할 수 있습니다.  
실패한 항목은 `debug.log`, 콘솔, 네트워크 탭 로그와 함께 보관하면 재현·수정에 도움이 됩니다.
