
    (<is                     
   d Z ddlZddlmZ ddlmZ ddlZej                  j                  d e	 ee
      j                  j                               ddlmZmZmZmZmZmZ d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zy)u   
TDD RED 단계: test_browser_stealth.py
browser.py의 스텔스 모드 관련 상수 및 함수에 대한 테스트 스위트
    N)Path)Callable)BLOCKED_RESOURCE_TYPESHARMFUL_ARGSSTEALTH_ARGScreate_resource_blockergenerate_stealth_headersget_google_refererc                  ,    t        t              dk(  sJ y)u,   STEALTH_ARGS가 정확히 54개인지 확인7   N)lenr        S/home/jay/workspace/.worktrees/task-2057-dev2/scripts/tests/test_browser_stealth.pytest_stealth_args_countr      s    |"""r   c                      dt         v sJ y)uR   STEALTH_ARGS에 AutomationControlled 비활성화 플래그가 포함되어야 함z---disable-blink-features=AutomationControlledN)r   r   r   r   0test_stealth_args_contains_automation_controlledr   "   s    :lJJJr   c                  X    t        t              t        t        t                    k(  sJ y)u1   STEALTH_ARGS에 중복 플래그가 없어야 함N)r   r   setr   r   r   test_stealth_args_no_duplicatesr   '   s    |C$5 6666r   c                  ,    t        t              dk(  sJ y)u+   HARMFUL_ARGS가 정확히 5개인지 확인   N)r   r   r   r   r   test_harmful_args_countr   1   s    |!!!r   c                      dt         v sJ y)uD   HARMFUL_ARGS에 --enable-automation 플래그가 포함되어야 함z--enable-automationN)r   r   r   r   ,test_harmful_args_contains_enable_automationr   6   s     L000r   c                  b    t        t              t        t              z  } t        |       dk(  sJ y)uA   HARMFUL_ARGS와 STEALTH_ARGS는 겹치는 항목이 없어야 함r   N)r   r   r   r   )overlaps    r   )test_harmful_args_no_overlap_with_stealthr   ;   s(    ,#l"33Gw<1r   c                  @    dt         v sJ dt         v sJ dt         v sJ y)uC   BLOCKED_RESOURCE_TYPES에 image, font, media가 포함되어야 함imagefontmediaN)r   r   r   r   test_blocked_resource_typesr#   F   s/    ,,,,++++,,,,r   c                  H    t               } t        | t              sJ d| v sJ y)uS   generate_stealth_headers가 dict를 반환하고 User-Agent 키를 포함해야 함
User-AgentN)r	   
isinstancedictheaderss    r   *test_generate_stealth_headers_returns_dictr*   R   s(    &(Ggt$$$7"""r   c                  R    t               } | d   dk7  sJ t        | d         dkD  sJ y)uH   generate_stealth_headers의 User-Agent 값이 비어있지 않아야 함r%    r   N)r	   r   r(   s    r   ,test_generate_stealth_headers_has_user_agentr-   Y   s5    &(G< B&&&w|$%)))r   c                  &    t               } | dk(  sJ y)u>   get_google_referer가 정확한 Google URL을 반환해야 함zhttps://www.google.com/N)r
   )referers    r   test_get_google_refererr0   e   s     "G////r   c                  2    t               } t        |       sJ y)u7   create_resource_blocker가 callable을 반환해야 함N)r   callable)blockers    r   -test_create_resource_blocker_returns_callabler4   p   s    %'GGr   )__doc__syspathlibr   typingr   pytestpathinsertstr__file__parentbrowserr   r   r   r   r	   r
   r   r   r   r   r   r   r#   r*   r-   r0   r4   r   r   r   <module>r@      s   
     3tH~,,334 5 #
K
7"
1
-#*0r   