javascriptunit-testinguser-agent

Mocking a useragent in javascript?


I'm looking for a way to programmatically change navigator.userAgent on the fly. In my failed attempt to get an automated javascript unit tester, I gave up and attempted to begin using fireunit. Immediately, I've slammed into one of the walls of using an actual browser for javascript testing.

Specifically, I need to change navigator.userAgent to simulate a few hundred userAgent strings to ensure proper detection and coverage on a given function. navigator.userAgent is readonly, so I seem stuck! How can I mock navigator.userAgent? User Agent Switcher (plugin) can switch FF's useragent, but can I do it within javascript?


Solution

  • Try:

    navigator.__defineGetter__('userAgent', function(){
        return 'foo' // customized user agent
    });
    
    navigator.userAgent; // 'foo'
    

    Tried it in FF2 and FF3.