Skip to content

Commit 6361e07

Browse files
authored
fix(docs): clarify repeating calls to setHTTPCredentials (#2212)
1 parent 1f3f42a commit 6361e07

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

docs/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ await browserContext.setGeolocation({latitude: 59.95, longitude: 30.31667});
574574

575575
Provide credentials for [HTTP authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication).
576576

577-
To disable authentication, pass `null`.
577+
> **NOTE** Browsers may cache credentials that resulted in successfull auth. That means passing different credentials after successfull authentication or passing `null` to disable authentication is unreliable. Instead, create a separate browser context that will not have previous credentials cached.
578578
579579
#### browserContext.setOffline(offline)
580580
- `offline` <[boolean]> Whether to emulate network being offline for the browser context.

test/browsercontext.spec.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,32 @@ describe('BrowserContext.setHTTPCredentials', function() {
482482
expect(response.status()).toBe(401);
483483
await context.close();
484484
});
485+
it.fail(true)('should update', async({browser, server}) => {
486+
server.setAuth('/empty.html', 'user', 'pass');
487+
const context = await browser.newContext({
488+
httpCredentials: { username: 'user', password: 'pass' }
489+
});
490+
const page = await context.newPage();
491+
let response = await page.goto(server.EMPTY_PAGE);
492+
expect(response.status()).toBe(200);
493+
await context.setHTTPCredentials({ username: 'user', password: 'letmein' });
494+
response = await page.goto(server.EMPTY_PAGE);
495+
expect(response.status()).toBe(401);
496+
await context.close();
497+
});
498+
it.fail(true)('should update to null', async({browser, server}) => {
499+
server.setAuth('/empty.html', 'user', 'pass');
500+
const context = await browser.newContext({
501+
httpCredentials: { username: 'user', password: 'pass' }
502+
});
503+
const page = await context.newPage();
504+
let response = await page.goto(server.EMPTY_PAGE);
505+
expect(response.status()).toBe(200);
506+
await context.setHTTPCredentials(null);
507+
response = await page.goto(server.EMPTY_PAGE);
508+
expect(response.status()).toBe(401);
509+
await context.close();
510+
});
485511
it('should return resource body', async({browser, server}) => {
486512
server.setAuth('/playground.html', 'user', 'pass');
487513
const context = await browser.newContext({

0 commit comments

Comments
 (0)