This commit is contained in:
deepak1556 2016-12-01 01:32:17 +05:30 committed by Kevin Sawicki
parent 7456b9ae17
commit 21be9a3309

View file

@ -4,10 +4,11 @@ const https = require('https')
const path = require('path')
const fs = require('fs')
const send = require('send')
const auth = require('basic-auth')
const {closeWindow} = require('./window-helpers')
const {ipcRenderer, remote} = require('electron')
const {ipcMain, session, BrowserWindow} = remote
const {ipcMain, session, BrowserWindow, net} = remote
describe('session module', function () {
var fixtures = path.resolve(__dirname, 'fixtures')
@ -661,4 +662,60 @@ describe('session module', function () {
})
})
})
describe('ses.clearAuthCache(options[, callback])', function () {
it('can clear http auth info from cache', function (done) {
const ses = session.fromPartition('auth-cache')
const server = http.createServer(function (req, res) {
var credentials = auth(req)
if (!credentials || credentials.name !== 'test' || credentials.pass !== 'test') {
res.statusCode = 401
res.setHeader('WWW-Authenticate', 'Basic realm="Restricted"')
res.end()
} else {
res.statusCode = 200
res.write('authenticated')
res.end()
}
})
server.listen(0, '127.0.0.1', function () {
const port = server.address().port
function issueLoginRequest (attempt = 1) {
if (attempt > 2) {
server.close()
return done()
}
const request = net.request({
url: `http://127.0.0.1:${port}`,
session: ses
})
request.on('login', function (info, callback) {
attempt++
assert.equal(info.scheme, 'basic')
assert.equal(info.realm, 'Restricted')
callback('test', 'test')
})
request.on('response', function (response) {
let data = ''
response.on('data', function (chunk) {
data += chunk
})
response.on('end', function () {
assert.equal(data, 'authenticated')
ses.clearAuthCache({type: 'password'}, function () {
issueLoginRequest(attempt)
})
})
response.on('error', function (error) {
done(error)
})
})
// Internal api to bypass cache for testing.
request.urlRequest._setLoadFlags(1 << 1)
request.end()
}
issueLoginRequest()
})
})
})
})