Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
casperjs
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
9513793a
...
9513793aecb35529a1b89fdacb14c786a030823b
authored
2013-09-15 15:25:49 -0600
by
hexid
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Add .NET support
1 parent
b7f76a21
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
186 additions
and
1 deletions
.travis.yml
Makefile
bin/casperjs.exe
src/casperjs.cs
.travis.yml
View file @
9513793
...
...
@@ -27,6 +27,7 @@ before_install:
-
sudo mv phantomjs-1.9.2-linux-x86_64/bin/phantomjs bin/phantomjs192
-
bin/phantomjs192 --version
-
ls -la bin/phantomjs192
-
sudo apt-get install -qq mono-devel mono-mcs
before_script
:
-
"
npm
install
-g
jshint@2.0.1"
...
...
@@ -37,6 +38,7 @@ before_script:
script
:
-
make test
-
make test-dotNET
env
:
matrix
:
...
...
Makefile
View file @
9513793
.PHONY
:
default test
docs selftest
clitest jshint
.PHONY
:
default test
test-dotNET docs selftest compile-dotNET selftest-dotNET
clitest jshint
default
:
test
test
:
selftest clitest jshint
test-dotNET
:
compile-dotNET selftest-dotNET
docs
:
sphinx-build -b html ./docs docs/_build
selftest
:
bin/casperjs selftest
compile-dotNET
:
mcs -out:bin/casperjs.exe src/casperjs.cs
selftest-dotNET
:
bin/casperjs.exe selftest
clitest
:
python tests/clitests/runtests.py
...
...
bin/casperjs.exe
0 → 100755
View file @
9513793
No preview for this file type
src/casperjs.cs
0 → 100644
View file @
9513793
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Diagnostics
;
using
System.IO
;
interface
engine
{
string
env_varname
();
string
default_exec
();
string
[]
native_args
();
}
class
phantomjs
:
engine
{
public
string
env_varname
()
{
return
"PHANTOMJS_EXECUTABLE"
;
}
public
string
default_exec
()
{
return
"phantomjs"
;
}
public
string
[]
native_args
()
{
return
new
[]
{
"cookies-file"
,
"config"
,
"debug"
,
"disk-cache"
,
"ignore-ssl-errors"
,
"load-images"
,
"load-plugins"
,
"local-storage-path"
,
"local-storage-quota"
,
"local-to-remote-url-access"
,
"max-disk-cache-size"
,
"output-encoding"
,
"proxy"
,
"proxy-auth"
,
"proxy-type"
,
"remote-debugger-port"
,
"remote-debugger-autorun"
,
"script-encoding"
,
"ssl-protocol"
,
"ssl-certificates-path"
,
"web-security"
,
"webdriver"
,
"webdriver-logfile"
,
"webdriver-loglevel"
,
"webdriver-selenium-grid-hub"
,
"wd"
,
"w"
,
};
}
}
class
slimerjs
:
engine
{
public
string
env_varname
()
{
return
"SLIMERJS_EXECUTABLE"
;
}
public
string
default_exec
()
{
return
"slimerjs"
;
}
public
string
[]
native_args
()
{
return
new
[]
{
"P"
,
"jsconsole"
,
"CreateProfile"
,
"profile"
,
//phantomjs options
"cookies-file"
,
"config"
,
"debug"
,
"disk-cache"
,
"ignore-ssl-errors"
,
"load-images"
,
"load-plugins"
,
"local-storage-path"
,
"local-storage-quota"
,
"local-to-remote-url-access"
,
"max-disk-cache-size"
,
"output-encoding"
,
"proxy"
,
"proxy-auth"
,
"proxy-type"
,
"remote-debugger-port"
,
"remote-debugger-autorun"
,
"script-encoding"
,
"ssl-protocol"
,
"ssl-certificates-path"
,
"web-security"
,
"webdriver"
,
"webdriver-logfile"
,
"webdriver-loglevel"
,
"webdriver-selenium-grid-hub"
,
"wd"
,
"w"
,
};
}
}
class
casperjs
{
static
void
Main
(
string
[]
args
)
{
var
SUPPORTED_ENGINES
=
new
Dictionary
<
string
,
engine
>
{
{
"phantomjs"
,
new
phantomjs
()},
{
"slimerjs"
,
new
slimerjs
()}
};
string
ENGINE
=
"phantomjs"
;
var
ENGINE_ARGS
=
new
List
<
string
>();
string
[]
ENGINE_NATIVE_ARGS
=
{};
string
ENGINE_EXECUTABLE
=
""
;
string
EXE_FILE
=
System
.
Reflection
.
Assembly
.
GetCallingAssembly
().
Location
;
var
CASPER_ARGS
=
new
List
<
string
>();
string
CASPER_PATH
=
Path
.
GetFullPath
(
Path
.
Combine
(
Path
.
Combine
(
EXE_FILE
,
".."
),
".."
));
foreach
(
string
arg
in
args
)
{
if
(
arg
.
StartsWith
(
"--engine"
))
{
ENGINE
=
arg
.
Substring
(
9
);
break
;
}
}
if
(
SUPPORTED_ENGINES
.
ContainsKey
(
ENGINE
))
{
ENGINE_NATIVE_ARGS
=
SUPPORTED_ENGINES
[
ENGINE
].
native_args
();
ENGINE_EXECUTABLE
=
Environment
.
GetEnvironmentVariable
(
SUPPORTED_ENGINES
[
ENGINE
].
env_varname
())
??
SUPPORTED_ENGINES
[
ENGINE
].
default_exec
();
}
else
{
Console
.
WriteLine
(
"Bad engine name. Only phantomjs and slimerjs are supported"
);
Environment
.
Exit
(
1
);
}
foreach
(
string
arg
in
args
)
{
bool
found
=
false
;
foreach
(
string
native
in
ENGINE_NATIVE_ARGS
)
{
if
(
arg
.
StartsWith
(
"--"
+
native
))
{
ENGINE_ARGS
.
Add
(
arg
);
found
=
true
;
}
}
if
(!
found
)
if
(!
arg
.
StartsWith
(
"--engine="
))
CASPER_ARGS
.
Add
(
arg
);
}
var
ENGINE_EXEC
=
new
List
<
string
>(
ENGINE_EXECUTABLE
.
Split
(
' '
));
var
ENGINE_FILE
=
ENGINE_EXEC
[
0
];
ENGINE_EXEC
.
RemoveAt
(
0
);
var
CASPER_COMMAND
=
new
List
<
string
>(
ENGINE_EXEC
);
CASPER_COMMAND
.
AddRange
(
ENGINE_ARGS
);
CASPER_COMMAND
.
AddRange
(
new
[]
{
Path
.
Combine
(
Path
.
Combine
(
CASPER_PATH
,
"bin"
),
"bootstrap.js"
),
"--casper-path="
+
CASPER_PATH
,
"--cli"
});
CASPER_COMMAND
.
AddRange
(
CASPER_ARGS
);
ProcessStartInfo
psi
=
new
ProcessStartInfo
();
psi
.
FileName
=
ENGINE_FILE
;
psi
.
UseShellExecute
=
false
;
psi
.
RedirectStandardOutput
=
true
;
psi
.
Arguments
=
String
.
Join
(
" "
,
CASPER_COMMAND
.
ToArray
());
try
{
Process
p
=
Process
.
Start
(
psi
);
while
(!
p
.
StandardOutput
.
EndOfStream
)
{
string
line
=
p
.
StandardOutput
.
ReadLine
();
Console
.
WriteLine
(
line
);
}
}
catch
(
Win32Exception
e
)
{
Console
.
WriteLine
(
e
.
Message
);
Environment
.
Exit
(
1
);
}
}
}
Please
register
or
sign in
to post a comment