#!/usr/bin/env python3
"""
Test script for Facebook scraper functionality
"""

import sys
import os
from config import is_facebook_scraping_enabled, validate_config

def test_configuration():
    """Test if configuration is valid"""
    print("🔧 Testing Facebook scraper configuration...")
    
    is_valid, message = validate_config()
    print(f"Configuration status: {'✅ Valid' if is_valid else '❌ Invalid'}")
    print(f"Message: {message}")
    
    if is_facebook_scraping_enabled():
        print("✅ Facebook scraping is enabled")
    else:
        print("❌ Facebook scraping is disabled")
    
    return is_valid

def test_url_detection():
    """Test URL detection functionality"""
    print("\n🔗 Testing URL detection...")
    
    # Import URL detection functions
    sys.path.append('..')
    from lib.urlDetector import isFacebookPageUrl, extractFacebookPageUrl
    
    test_urls = [
        'https://www.facebook.com/eastshorecafe/',
        'https://facebook.com/pages/Business-Name/123456789',
        'https://m.facebook.com/businesspage',
        'https://www.example.com',
        'not a url',
        'https://www.facebook.com/profile.php?id=123'
    ]
    
    for url in test_urls:
        is_facebook = isFacebookPageUrl(url)
        print(f"  {url} -> {'✅ Facebook page' if is_facebook else '❌ Not Facebook page'}")
        
        if is_facebook:
            normalized = extractFacebookPageUrl(url)
            print(f"    Normalized: {normalized}")

def test_scraper_import():
    """Test if the scraper can be imported"""
    print("\n📦 Testing scraper import...")
    
    try:
        from facebook_scraper import FacebookPageScraper
        print("✅ FacebookPageScraper imported successfully")
        
        scraper = FacebookPageScraper()
        print("✅ FacebookPageScraper instance created")
        
        return True
    except ImportError as e:
        print(f"❌ Import error: {e}")
        return False
    except Exception as e:
        print(f"❌ Unexpected error: {e}")
        return False

def main():
    """Main test function"""
    print("🧪 Facebook Scraper Test Suite")
    print("=" * 50)
    
    # Test configuration
    config_valid = test_configuration()
    
    # Test URL detection
    test_url_detection()
    
    # Test scraper import
    import_success = test_scraper_import()
    
    print("\n" + "=" * 50)
    print("📊 Test Summary:")
    print(f"Configuration: {'✅ Valid' if config_valid else '❌ Invalid'}")
    print(f"Import: {'✅ Success' if import_success else '❌ Failed'}")
    
    if config_valid and import_success:
        print("\n🎉 All tests passed! Facebook scraping is ready to use.")
        print("\nTo test with a real Facebook page:")
        print("python facebook_scraper.py 'https://www.facebook.com/eastshorecafe/'")
    else:
        print("\n⚠️  Some tests failed. Please check the configuration.")
        if not config_valid:
            print("- Set APIFY_API_TOKEN environment variable")
        if not import_success:
            print("- Install required dependencies: pip install requests python-dotenv")

if __name__ == "__main__":
    main() 