add spec
This commit is contained in:
parent
7456b9ae17
commit
21be9a3309
1 changed files with 58 additions and 1 deletions
|
@ -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()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Add table
Reference in a new issue