Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
028fb3a6
W
wechaty
项目概览
.Veneno.
/
wechaty
与 Fork 源项目一致
Fork自
wechaty / wechaty
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
wechaty
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
028fb3a6
编写于
10月 31, 2016
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code clean
上级
db3955eb
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
39 addition
and
27 deletion
+39
-27
package.json
package.json
+1
-1
src/puppet-web/browser-driver.ts
src/puppet-web/browser-driver.ts
+10
-7
src/puppet-web/browser.ts
src/puppet-web/browser.ts
+10
-6
src/puppet-web/event.ts
src/puppet-web/event.ts
+1
-1
src/state-monitor.ts
src/state-monitor.ts
+16
-11
src/util-lib.spec.ts
src/util-lib.spec.ts
+1
-1
未找到文件。
package.json
浏览文件 @
028fb3a6
...
...
@@ -29,7 +29,7 @@
"posttest"
:
"npm run clean && npm run sloc"
,
"test:phantomjs"
:
"cross-env LC_ALL=C WECHATY_LOG=info WECHATY_HEAD=phantomjs ava --timeout=7m
\"
dist/test/*.spec.js
\"
"
,
"test:phantomjs.bak"
:
"cross-env LC_ALL=C WECHATY_LOG=info WECHATY_HEAD=phantomjs ava --timeout=7m
\"
dist/{src,test}/**/*.spec.js
\"
"
,
"test:chrome"
:
"cross-env LC_ALL=C WECHATY_LOG=silly WECHATY_HEAD=chrome ava --serial --verbose --ext js --timeout=7m
\"
dist/{src,test}/**/*.spec.js
\"
"
,
"test:chrome"
:
"cross-env LC_ALL=C WECHATY_LOG=silly WECHATY_HEAD=chrome ava --serial --
fail-fast --
verbose --ext js --timeout=7m
\"
dist/{src,test}/**/*.spec.js
\"
"
,
"testdev"
:
"cross-env LC_ALL=C WECHATY_LOG=silly ava --ext ts --serial --verbose --fail-fast --timeout=3m"
,
"testdist"
:
"cross-env WECHATY_LOG=SILLY WECHATY_HEAD=chrome ava --ext ts --verbose --fail-fast --timeout=2m"
,
"ava"
:
"cross-env LC_ALL=C WECHATY_LOG=verbose ts-node node_modules/.bin/ava
\"
{src,test}/**/*.spec.js
\"
"
,
...
...
src/puppet-web/browser-driver.ts
浏览文件 @
028fb3a6
...
...
@@ -31,11 +31,14 @@ export class BrowserDriver {
if
(
this
.
driver
)
{
try
{
await
this
.
driver
.
close
()
const
valid
=
await
this
.
valid
(
this
.
driver
)
if
(
valid
)
{
// await this.driver.close()
await
this
.
driver
.
quit
()
}
}
catch
(
e
)
{
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
init() this.driver.
{close,quit}
() exception: %s
'
,
e
.
message
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
init() this.driver.
quit
() exception: %s
'
,
e
.
stack
)
}
}
...
...
@@ -232,7 +235,7 @@ export class BrowserDriver {
const
session
=
await
driver
.
getSession
()
if
(
!
session
)
{
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
valid() found an invalid driver
'
)
log
.
verbose
(
'
PuppetWebBrowserDriver
'
,
'
valid() found an invalid driver
'
)
}
else
{
log
.
silly
(
'
PuppetWebBrowserDriver
'
,
'
valid() driver ok
'
)
}
...
...
src/puppet-web/browser.ts
浏览文件 @
028fb3a6
...
...
@@ -51,6 +51,8 @@ export class Browser extends EventEmitter {
public
toString
()
{
return
`Browser({head:
${
this
.
setting
.
head
}
)`
}
public
async
init
():
Promise
<
void
>
{
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
init()
'
)
this
.
state
.
target
(
'
open
'
)
this
.
state
.
current
(
'
open
'
,
false
)
...
...
@@ -60,10 +62,12 @@ export class Browser extends EventEmitter {
try
{
await
this
.
driver
.
init
()
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
init() driver.init() succ
'
)
await
this
.
open
(
jumpUrl
)
await
this
.
loadCookie
()
.
catch
(
e
=>
{
// fail safe
log
.
verbose
(
'
PuppetWeb
'
,
'
browser.loadSession(%s) exception: %s
'
log
.
verbose
(
'
PuppetWeb
Browser
'
,
'
browser.loadSession(%s) exception: %s
'
,
this
.
setting
.
sessionFile
,
e
&&
e
.
message
||
e
)
...
...
@@ -85,8 +89,9 @@ export class Browser extends EventEmitter {
}
catch
(
e
)
{
log
.
error
(
'
PuppetWebBrowser
'
,
'
init() exception: %s
'
,
e
.
message
)
this
.
state
.
current
(
'
close
'
)
// this.state.current('close', false
)
await
this
.
quit
()
// this.state.current('close')
throw
e
}
...
...
@@ -118,7 +123,7 @@ export class Browser extends EventEmitter {
await
this
.
quit
()
if
(
this
.
state
.
current
()
===
'
open
'
&&
this
.
state
.
inprocess
())
{
log
.
warn
(
'
PuppetWebBrowser
'
,
'
restart() found state.current() === open and inprocess()
'
)
log
.
warn
(
'
PuppetWebBrowser
'
,
'
restart() found state.current() === open and inprocess()
after quit()!
'
)
return
}
...
...
@@ -138,9 +143,9 @@ export class Browser extends EventEmitter {
try
{
await
this
.
driver
.
close
().
catch
(
e
=>
{
/* fail safe */
})
// http://stackoverflow.com/a/32341885/1123955
log
.
silly
(
'
PuppetWebBrowser
'
,
'
quit() driver.close()
-ed
'
)
log
.
silly
(
'
PuppetWebBrowser
'
,
'
quit() driver.close()
succ
'
)
await
this
.
driver
.
quit
()
log
.
silly
(
'
PuppetWebBrowser
'
,
'
quit() driver.quit()
-ed
'
)
log
.
silly
(
'
PuppetWebBrowser
'
,
'
quit() driver.quit()
succ
'
)
/**
*
...
...
@@ -168,7 +173,6 @@ export class Browser extends EventEmitter {
/* fail safe */
}
// this.currentState('close')
this
.
state
.
current
(
'
close
'
)
return
...
...
src/puppet-web/event.ts
浏览文件 @
028fb3a6
...
...
@@ -80,7 +80,7 @@ async function onBrowserDead(this: PuppetWeb, e): Promise<void> {
try
{
await
this
.
browser
.
quit
()
log
.
verbose
(
'
PuppetWebEvent
'
,
'
onBrowserDead() browser
quit-ed
'
)
log
.
verbose
(
'
PuppetWebEvent
'
,
'
onBrowserDead() browser
.quit() succ
'
)
if
(
browser
.
state
.
target
()
!==
'
open
'
)
{
log
.
warn
(
'
PuppetWebEvent
'
,
'
onBrowserDead() will not init browser because browser.state.target(%s) !== open
'
...
...
src/state-monitor.ts
浏览文件 @
028fb3a6
...
...
@@ -34,14 +34,14 @@ export class StateMonitor <A, B>{
*/
public
target
(
newState
?:
A
|
B
):
A
|
B
{
if
(
newState
)
{
log
.
verbose
(
'
StateMonitor
'
,
'
%s.state.target(%s) from %s
'
,
this
.
_client
log
.
verbose
(
'
StateMonitor
'
,
'
state.target(%s) <- %s for %s
'
,
newState
,
this
.
_target
,
this
.
_client
)
this
.
_target
=
newState
}
else
{
log
.
silly
(
'
StateMonitor
'
,
'
%s.state.target() is %s
'
,
this
.
_client
,
this
.
_targe
t
)
log
.
silly
(
'
StateMonitor
'
,
'
state.target() is %s of %s
'
,
this
.
_target
,
this
.
_clien
t
)
}
return
this
.
_target
}
...
...
@@ -52,25 +52,30 @@ export class StateMonitor <A, B>{
*/
public
current
(
newState
?:
A
|
B
,
stable
=
true
):
A
|
B
{
if
(
newState
)
{
log
.
verbose
(
'
StateMonitor
'
,
'
%s.state.current(%s,%s) from (%s,%s)
'
,
this
.
_client
log
.
verbose
(
'
StateMonitor
'
,
'
state.current(%s,%s) <- (%s,%s) for %s
'
,
newState
,
stable
,
this
.
_current
,
this
.
_stable
,
this
.
_client
)
/**
* warn for inprocess current state change twice, mostly like a logic bug outside
*/
if
(
this
.
_current
===
newState
&&
this
.
_stable
===
stable
&&
stable
===
false
// warn for inprocess current state change twice, mostly like a logic bug outside
&&
stable
===
false
)
{
log
.
warn
(
'
StateMonitor
'
,
'
%s.state.current(%s,%s) called but there are already in the same state
'
,
this
.
_client
log
.
warn
(
'
StateMonitor
'
,
'
state.current(%s,%s) called but there are already in the same state for %s
'
,
newState
,
stable
,
this
.
_client
)
const
e
=
new
Error
(
'
current unchange
'
)
log
.
verbose
(
'
StateMonitor
'
,
e
.
stack
)
}
this
.
_current
=
newState
this
.
_stable
=
stable
}
else
{
log
.
silly
(
'
StateMonitor
'
,
'
%s.state.current() is %s
'
,
this
.
_client
,
this
.
_curr
ent
)
log
.
silly
(
'
StateMonitor
'
,
'
state.current() is %s of %s
'
,
this
.
_current
,
this
.
_cli
ent
)
}
return
this
.
_current
}
...
...
@@ -79,7 +84,7 @@ export class StateMonitor <A, B>{
* does the current state be stable(not inprocess)?
*/
public
stable
()
{
log
.
silly
(
'
StateMonitor
'
,
'
%s.state.stable() is %s
'
,
this
.
_client
,
this
.
_stable
)
log
.
silly
(
'
StateMonitor
'
,
'
state.stable() is %s of %s
'
,
this
.
_stable
,
this
.
_client
)
return
this
.
_stable
}
...
...
@@ -87,7 +92,7 @@ export class StateMonitor <A, B>{
* does the current state be inprocess(not stable)?
*/
public
inprocess
()
{
log
.
silly
(
'
StateMonitor
'
,
'
%s.state.inprocess() is %s
'
,
this
.
_client
,
!
this
.
_stable
)
log
.
silly
(
'
StateMonitor
'
,
'
state.inprocess() is %s of %s
'
,
!
this
.
_stable
,
this
.
_client
)
return
!
this
.
_stable
}
...
...
src/util-lib.spec.ts
浏览文件 @
028fb3a6
...
...
@@ -134,5 +134,5 @@ test('getPort() for an available socket port', async t => {
t
.
fail
(
'
should not exception:
'
+
e
.
message
+
'
,
'
+
e
.
stack
)
}
}
t
.
ok
(
'
should has no exception after loop test
'
)
t
.
pass
(
'
should has no exception after loop test
'
)
})
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录