aws-sdk 2.0.1 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +20 -0
- package/.gitignore +10 -0
- package/.travis.yml +20 -0
- package/.yardopts +20 -0
- package/.yardopts_guide +21 -0
- package/Gemfile +16 -0
- package/Gemfile.lock +34 -0
- package/README.md +5 -6
- package/Rakefile +14 -0
- package/UPGRADING.md +9 -4
- package/configuration.sample +5 -0
- package/dist/BUNDLE_LICENSE.txt +96 -0
- package/dist/aws-sdk.js +9594 -0
- package/dist/aws-sdk.min.js +21 -0
- package/dist-tools/.eslintrc +10 -0
- package/dist-tools/browser-builder.js +142 -0
- package/dist-tools/strategies/cache.js +68 -0
- package/dist-tools/strategies/default.js +165 -0
- package/dist-tools/test/browser-builder.mocha.spec.coffee +182 -0
- package/dist-tools/test/helpers.coffee +16 -0
- package/doc-src/guide/browser-building.md +93 -0
- package/doc-src/guide/browser-configuring-wif.md +287 -0
- package/doc-src/guide/browser-configuring.md +218 -0
- package/doc-src/guide/browser-examples.md +220 -0
- package/doc-src/guide/browser-intro.md +46 -0
- package/doc-src/guide/browser-making-requests.md +279 -0
- package/doc-src/guide/browser-services.md +75 -0
- package/doc-src/guide/index.md +41 -0
- package/doc-src/guide/node-configuring.md +272 -0
- package/doc-src/guide/node-examples.md +341 -0
- package/doc-src/guide/node-intro.md +32 -0
- package/doc-src/guide/node-making-requests.md +309 -0
- package/doc-src/guide/node-services.md +159 -0
- package/doc-src/templates/api-versions/model_documentor.rb +366 -0
- package/doc-src/templates/api-versions/plugin.rb +230 -0
- package/doc-src/templates/api-versions/templates/default/class/html/setup.rb +9 -0
- package/doc-src/templates/api-versions/templates/default/class/html/waiter_details_list.erb +7 -0
- package/doc-src/templates/api-versions/templates/default/class/html/waiter_summary.erb +7 -0
- package/doc-src/templates/api-versions/templates/default/docstring/html/experimental.erb +4 -0
- package/doc-src/templates/api-versions/templates/default/docstring/setup.rb +9 -0
- package/doc-src/templates/api-versions/templates/default/fulldoc/html/css/common.css +6 -0
- package/doc-src/templates/api-versions/templates/default/fulldoc/html/setup.rb +62 -0
- package/doc-src/templates/api-versions/templates/default/layout/html/services.erb +10 -0
- package/doc-src/templates/api-versions/templates/default/layout/html/setup.rb +28 -0
- package/doc-src/templates/api-versions/templates/default/module/html/box_info.erb +45 -0
- package/doc-src/templates/api-versions/templates/default/module/html/children.erb +8 -0
- package/doc-src/templates/api-versions/templates/default/tags/setup.rb +3 -0
- package/doc-src/templates/api-versions/templates/default/waiter_details/html/method_signature.erb +3 -0
- package/doc-src/templates/api-versions/templates/default/waiter_details/html/setup.rb +5 -0
- package/doc-src/templates/default/layout/html/footer.erb +31 -0
- package/doc-src/templates/default/layout/html/layout.erb +23 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/css/highlight.github.css +127 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/css/style.css +1192 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/img/logo.png +0 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/app.js +33 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/highlight.pack.js +27 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/sphinx/AUTHORS +55 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/sphinx/LICENSE +25 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/sphinx/doctools.js +247 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/sphinx/file.png +0 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/sphinx/searchtools.js +568 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/js/underscore.js +23 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/search.erb +29 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/search_index.erb +1 -0
- package/doc-src/templates/flasky_sphinx_guide/fulldoc/html/setup.rb +75 -0
- package/doc-src/templates/flasky_sphinx_guide/layout/html/layout.erb +93 -0
- package/doc-src/templates/flasky_sphinx_guide/layout/html/setup.rb +9 -0
- package/doc-src/templates/flasky_sphinx_guide/layout/html/sidebar.erb +45 -0
- package/doc-src/templates/flasky_sphinx_guide/onefile/html/layout.erb +51 -0
- package/doc-src/templates/flasky_sphinx_guide/onefile/html/setup.rb +1 -0
- package/eslint-rules/no-require-in-service.js +10 -0
- package/features/autoscaling/autoscaling.feature +21 -0
- package/features/autoscaling/step_definitions/autoscaling.js +49 -0
- package/features/cloudformation/cloudformation.feature +22 -0
- package/features/cloudformation/step_definitions/cloudformation.js +26 -0
- package/features/cloudfront/cloudfront.feature +28 -0
- package/features/cloudfront/step_definitions/cloudfront-latest.js +54 -0
- package/features/cloudfront/step_definitions/cloudfront.js +21 -0
- package/features/cloudsearch/cloudsearch.feature +34 -0
- package/features/cloudsearch/step_definitions/cloudsearch.js +42 -0
- package/features/cloudtrail/cloudtrail.feature +17 -0
- package/features/cloudtrail/step_definitions/cloudtrail.js +14 -0
- package/features/cloudwatch/cloudwatch.feature +15 -0
- package/features/cloudwatch/step_definitions/cloudwatch.js +48 -0
- package/features/datapipeline/datapipeline.feature +23 -0
- package/features/datapipeline/step_definitions/datapipeline.js +79 -0
- package/features/directconnect/directconnect.feature +20 -0
- package/features/directconnect/step_definitions/directconnect.js +44 -0
- package/features/dynamodb/crc32.feature +18 -0
- package/features/dynamodb/step_definitions/dynamodb.js +154 -0
- package/features/dynamodb/tables.feature +50 -0
- package/features/ec2/ec2.feature +28 -0
- package/features/ec2/step_definitions/ec2.js +65 -0
- package/features/elasticache/elasticache.feature +20 -0
- package/features/elasticache/step_definitions/elasticache.js +34 -0
- package/features/elasticbeanstalk/elasticbeanstalk.feature +22 -0
- package/features/elasticbeanstalk/step_definitions/elasticbeanstalk.js +38 -0
- package/features/elastictranscoder/elastictranscoder.feature +24 -0
- package/features/elastictranscoder/step_definitions/elastictranscoder.js +56 -0
- package/features/elb/elb.feature +19 -0
- package/features/elb/step_definitions/elb.js +37 -0
- package/features/emr/emr.feature +16 -0
- package/features/emr/step_definitions/emr.js +45 -0
- package/features/extra/assertions.js +29 -0
- package/features/extra/dummy.feature +0 -0
- package/features/extra/fixtures/testfile.txt +1 -0
- package/features/extra/helpers.js +113 -0
- package/features/extra/hooks.js +107 -0
- package/features/extra/world.js +12 -0
- package/features/glacier/glacier.feature +47 -0
- package/features/glacier/step_definitions/glacier.js +112 -0
- package/features/iam/iam.feature +24 -0
- package/features/iam/step_definitions/iam.js +66 -0
- package/features/importexport/importexport.feature +53 -0
- package/features/importexport/step_definitions/importexport.js +42 -0
- package/features/kinesis/kinesis.feature +9 -0
- package/features/kinesis/step_definitions/kinesis.js +10 -0
- package/features/opsworks/opsworks.feature +26 -0
- package/features/opsworks/step_definitions/opsworks.js +42 -0
- package/features/rds/rds.feature +32 -0
- package/features/rds/step_definitions/rds.js +72 -0
- package/features/redshift/redshift.feature +20 -0
- package/features/redshift/step_definitions/redshift.js +33 -0
- package/features/route53/route53.feature +41 -0
- package/features/route53/step_definitions/route53.js +97 -0
- package/features/s3/buckets.feature +40 -0
- package/features/s3/objects.feature +122 -0
- package/features/s3/step_definitions/buckets.js +136 -0
- package/features/s3/step_definitions/hooks.js +39 -0
- package/features/s3/step_definitions/objects.js +204 -0
- package/features/s3/step_definitions/proxy.js +44 -0
- package/features/ses/ses.feature +20 -0
- package/features/ses/step_definitions/ses.js +22 -0
- package/features/simpledb/simpledb.feature +29 -0
- package/features/simpledb/step_definitions/simpledb.js +46 -0
- package/features/sns/sns.feature +15 -0
- package/features/sns/step_definitions/sns.js +33 -0
- package/features/sqs/messages.feature +21 -0
- package/features/sqs/queues.feature +18 -0
- package/features/sqs/step_definitions/messages.js +46 -0
- package/features/sqs/step_definitions/queues.js +33 -0
- package/features/sqs/step_definitions/sqs.js +7 -0
- package/features/storagegateway/step_definitions/storagegateway.js +16 -0
- package/features/storagegateway/storagegateway.feature +13 -0
- package/features/sts/step_definitions/sts.js +35 -0
- package/features/sts/sts.feature +29 -0
- package/features/support/step_definitions/support.js +35 -0
- package/features/support/support.feature +18 -0
- package/features/swf/step_definitions/swf.js +38 -0
- package/features/swf/swf.feature +15 -0
- package/index.js +2 -0
- package/lib/core.js +2 -2
- package/lib/credentials/shared_ini_file_credentials.js +0 -1
- package/lib/event_listeners.js +13 -1
- package/lib/http/node.js +19 -30
- package/lib/model/resource_waiter.js +0 -4
- package/lib/model/shape.js +2 -1
- package/lib/protocol/rest_xml.js +1 -1
- package/lib/region_config.js +31 -0
- package/lib/region_config.json +56 -0
- package/lib/request.js +37 -45
- package/lib/sequential_executor.js +17 -34
- package/lib/service.js +17 -44
- package/lib/services/cloudsearchdomain.js +69 -0
- package/lib/services/route53.js +0 -12
- package/lib/services/s3.js +3 -19
- package/lib/signers/v4.js +2 -1
- package/lib/util.js +28 -3
- package/package.json +3 -3
- package/scripts/console +11 -3
- package/scripts/coverage +126 -0
- package/tasks/apis.rake +122 -0
- package/tasks/browser.rake +89 -0
- package/tasks/docs.rake +36 -0
- package/tasks/lib/cucumber_generator.rb +40 -0
- package/tasks/util.rake +33 -0
- package/test/browser/js/jasmine-1.3.1.js +2600 -0
- package/test/browser/js/jasmine-html.js +681 -0
- package/test/browser/runner.html +109 -0
- package/test/browser/runner.js +92 -0
- package/test/browser/sample/appinfo.sample.js +15 -0
- package/test/browser/sample/console.html +429 -0
- package/test/browser/sample/css/smoothness/images/animated-overlay.gif +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
- package/test/browser/sample/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- package/test/browser/sample/css/smoothness/jquery-ui-1.10.1.custom.css +1175 -0
- package/test/browser/sample/css/smoothness/jquery-ui-1.10.1.custom.min.css +5 -0
- package/test/browser/sample/img/loading.gif +0 -0
- package/test/browser/sample/js/jquery-1.9.1.js +9597 -0
- package/test/browser/sample/js/jquery-ui-1.10.1.custom.js +14903 -0
- package/test/browser/sample/js/jquery-ui-1.10.1.custom.min.js +6 -0
- package/test/browser/sample/s3upload.html +111 -0
- package/test/browser.spec.coffee +207 -0
- package/test/config.spec.coffee +202 -0
- package/test/credential_provider_chain.spec.coffee +90 -0
- package/test/credentials.spec.coffee +452 -0
- package/test/endpoint.spec.coffee +80 -0
- package/test/event_listeners.spec.coffee +493 -0
- package/test/helpers.coffee +150 -0
- package/test/http_request.spec.coffee +55 -0
- package/test/json/builder.spec.coffee +129 -0
- package/test/json/parser.spec.coffee +108 -0
- package/test/metadata_service.spec.coffee +54 -0
- package/test/model/api.spec.coffee +67 -0
- package/test/model/shape.spec.coffee +23 -0
- package/test/node_http_client.spec.coffee +40 -0
- package/test/param_validator.spec.coffee +456 -0
- package/test/protocol/json.spec.coffee +167 -0
- package/test/protocol/query.spec.coffee +191 -0
- package/test/protocol/rest.spec.coffee +237 -0
- package/test/protocol/rest_json.spec.coffee +255 -0
- package/test/protocol/rest_xml.spec.coffee +329 -0
- package/test/query/query_param_serializer.spec.coffee +327 -0
- package/test/region_config.spec.coffee +50 -0
- package/test/request.spec.coffee +316 -0
- package/test/resource_waiter.spec.coffee +89 -0
- package/test/response.spec.coffee +81 -0
- package/test/sequential_executor.spec.coffee +118 -0
- package/test/service.spec.coffee +230 -0
- package/test/services/cloudfront.spec.coffee +44 -0
- package/test/services/cloudsearchdomain.spec.coffee +23 -0
- package/test/services/dynamodb.spec.coffee +32 -0
- package/test/services/ec2.spec.coffee +78 -0
- package/test/services/elastictranscoder.spec.coffee +43 -0
- package/test/services/glacier.spec.coffee +61 -0
- package/test/services/rds.spec.coffee +38 -0
- package/test/services/route53.spec.coffee +77 -0
- package/test/services/s3.spec.coffee +538 -0
- package/test/services/simpledb.spec.coffee +12 -0
- package/test/services/sqs.spec.coffee +130 -0
- package/test/services/sts.spec.coffee +72 -0
- package/test/services/swf.spec.coffee +6 -0
- package/test/signers/presign.spec.coffee +36 -0
- package/test/signers/s3.spec.coffee +297 -0
- package/test/signers/v2.spec.coffee +68 -0
- package/test/signers/v4.spec.coffee +135 -0
- package/test/util.spec.coffee +510 -0
- package/test/xml/builder.spec.coffee +529 -0
- package/test/xml/parser.spec.coffee +587 -0
- package/lib/services/simpledb.js +0 -15
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>AWS SDK for JavaScript - Browser Tests</title>
|
|
6
|
+
<style>
|
|
7
|
+
body { background-color: #eeeeee; padding: 0; margin: 5px; overflow-y: scroll; }
|
|
8
|
+
|
|
9
|
+
#HTMLReporter { font-size: 11px; font-family: Monaco, "Lucida Console", monospace; line-height: 14px; color: #333333; }
|
|
10
|
+
#HTMLReporter a { text-decoration: none; }
|
|
11
|
+
#HTMLReporter a:hover { text-decoration: underline; }
|
|
12
|
+
#HTMLReporter p, #HTMLReporter h1, #HTMLReporter h2, #HTMLReporter h3, #HTMLReporter h4, #HTMLReporter h5, #HTMLReporter h6 { margin: 0; line-height: 14px; }
|
|
13
|
+
#HTMLReporter .banner, #HTMLReporter .symbolSummary, #HTMLReporter .summary, #HTMLReporter .resultMessage, #HTMLReporter .specDetail .description, #HTMLReporter .alert .bar, #HTMLReporter .stackTrace { padding-left: 9px; padding-right: 9px; }
|
|
14
|
+
#HTMLReporter #jasmine_content { position: fixed; right: 100%; }
|
|
15
|
+
#HTMLReporter .version { color: #aaaaaa; }
|
|
16
|
+
#HTMLReporter .banner { margin-top: 14px; }
|
|
17
|
+
#HTMLReporter .duration { color: #aaaaaa; float: right; }
|
|
18
|
+
#HTMLReporter .symbolSummary { overflow: hidden; *zoom: 1; margin: 14px 0; }
|
|
19
|
+
#HTMLReporter .symbolSummary li { display: block; float: left; height: 7px; width: 14px; margin-bottom: 7px; font-size: 16px; }
|
|
20
|
+
#HTMLReporter .symbolSummary li.passed { font-size: 14px; }
|
|
21
|
+
#HTMLReporter .symbolSummary li.passed:before { color: #5e7d00; content: "\02022"; }
|
|
22
|
+
#HTMLReporter .symbolSummary li.failed { line-height: 9px; }
|
|
23
|
+
#HTMLReporter .symbolSummary li.failed:before { color: #b03911; content: "x"; font-weight: bold; margin-left: -1px; }
|
|
24
|
+
#HTMLReporter .symbolSummary li.skipped { font-size: 14px; }
|
|
25
|
+
#HTMLReporter .symbolSummary li.skipped:before { color: #bababa; content: "\02022"; }
|
|
26
|
+
#HTMLReporter .symbolSummary li.pending { line-height: 11px; }
|
|
27
|
+
#HTMLReporter .symbolSummary li.pending:before { color: #aaaaaa; content: "-"; }
|
|
28
|
+
#HTMLReporter .exceptions { color: #fff; float: right; margin-top: 5px; margin-right: 5px; }
|
|
29
|
+
#HTMLReporter .bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
|
|
30
|
+
#HTMLReporter .runningAlert { background-color: #666666; }
|
|
31
|
+
#HTMLReporter .skippedAlert { background-color: #aaaaaa; }
|
|
32
|
+
#HTMLReporter .skippedAlert:first-child { background-color: #333333; }
|
|
33
|
+
#HTMLReporter .skippedAlert:hover { text-decoration: none; color: white; text-decoration: underline; }
|
|
34
|
+
#HTMLReporter .passingAlert { background-color: #a6b779; }
|
|
35
|
+
#HTMLReporter .passingAlert:first-child { background-color: #5e7d00; }
|
|
36
|
+
#HTMLReporter .failingAlert { background-color: #cf867e; }
|
|
37
|
+
#HTMLReporter .failingAlert:first-child { background-color: #b03911; }
|
|
38
|
+
#HTMLReporter .results { margin-top: 14px; }
|
|
39
|
+
#HTMLReporter #details { display: none; }
|
|
40
|
+
#HTMLReporter .resultsMenu, #HTMLReporter .resultsMenu a { background-color: #fff; color: #333333; }
|
|
41
|
+
#HTMLReporter.showDetails .summaryMenuItem { font-weight: normal; text-decoration: inherit; }
|
|
42
|
+
#HTMLReporter.showDetails .summaryMenuItem:hover { text-decoration: underline; }
|
|
43
|
+
#HTMLReporter.showDetails .detailsMenuItem { font-weight: bold; text-decoration: underline; }
|
|
44
|
+
#HTMLReporter.showDetails .summary { display: none; }
|
|
45
|
+
#HTMLReporter.showDetails #details { display: block; }
|
|
46
|
+
#HTMLReporter .summaryMenuItem { font-weight: bold; text-decoration: underline; }
|
|
47
|
+
#HTMLReporter .summary { margin-top: 14px; }
|
|
48
|
+
#HTMLReporter .summary .suite .suite, #HTMLReporter .summary .specSummary { margin-left: 14px; }
|
|
49
|
+
#HTMLReporter .summary .specSummary.passed a { color: #5e7d00; }
|
|
50
|
+
#HTMLReporter .summary .specSummary.failed a { color: #b03911; }
|
|
51
|
+
#HTMLReporter .description + .suite { margin-top: 0; }
|
|
52
|
+
#HTMLReporter .suite { margin-top: 14px; }
|
|
53
|
+
#HTMLReporter .suite a { color: #333333; }
|
|
54
|
+
#HTMLReporter #details .specDetail { margin-bottom: 28px; }
|
|
55
|
+
#HTMLReporter #details .specDetail .description { display: block; color: white; background-color: #b03911; }
|
|
56
|
+
#HTMLReporter .resultMessage { padding-top: 14px; color: #333333; }
|
|
57
|
+
#HTMLReporter .resultMessage span.result { display: block; }
|
|
58
|
+
#HTMLReporter .stackTrace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666666; border: 1px solid #ddd; background: white; white-space: pre; }
|
|
59
|
+
|
|
60
|
+
#TrivialReporter { padding: 8px 13px; position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow-y: scroll; background-color: white; font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; /*.resultMessage {*/ /*white-space: pre;*/ /*}*/ }
|
|
61
|
+
#TrivialReporter a:visited, #TrivialReporter a { color: #303; }
|
|
62
|
+
#TrivialReporter a:hover, #TrivialReporter a:active { color: blue; }
|
|
63
|
+
#TrivialReporter .run_spec { float: right; padding-right: 5px; font-size: .8em; text-decoration: none; }
|
|
64
|
+
#TrivialReporter .banner { color: #303; background-color: #fef; padding: 5px; }
|
|
65
|
+
#TrivialReporter .logo { float: left; font-size: 1.1em; padding-left: 5px; }
|
|
66
|
+
#TrivialReporter .logo .version { font-size: .6em; padding-left: 1em; }
|
|
67
|
+
#TrivialReporter .runner.running { background-color: yellow; }
|
|
68
|
+
#TrivialReporter .options { text-align: right; font-size: .8em; }
|
|
69
|
+
#TrivialReporter .suite { border: 1px outset gray; margin: 5px 0; padding-left: 1em; }
|
|
70
|
+
#TrivialReporter .suite .suite { margin: 5px; }
|
|
71
|
+
#TrivialReporter .suite.passed { background-color: #dfd; }
|
|
72
|
+
#TrivialReporter .suite.failed { background-color: #fdd; }
|
|
73
|
+
#TrivialReporter .spec { margin: 5px; padding-left: 1em; clear: both; }
|
|
74
|
+
#TrivialReporter .spec.failed, #TrivialReporter .spec.passed, #TrivialReporter .spec.skipped { padding-bottom: 5px; border: 1px solid gray; }
|
|
75
|
+
#TrivialReporter .spec.failed { background-color: #fbb; border-color: red; }
|
|
76
|
+
#TrivialReporter .spec.passed { background-color: #bfb; border-color: green; }
|
|
77
|
+
#TrivialReporter .spec.skipped { background-color: #bbb; }
|
|
78
|
+
#TrivialReporter .messages { border-left: 1px dashed gray; padding-left: 1em; padding-right: 1em; }
|
|
79
|
+
#TrivialReporter .passed { background-color: #cfc; display: none; }
|
|
80
|
+
#TrivialReporter .failed { background-color: #fbb; }
|
|
81
|
+
#TrivialReporter .skipped { color: #777; background-color: #eee; display: none; }
|
|
82
|
+
#TrivialReporter .resultMessage span.result { display: block; line-height: 2em; color: black; }
|
|
83
|
+
#TrivialReporter .resultMessage .mismatch { color: black; }
|
|
84
|
+
#TrivialReporter .stackTrace { white-space: pre; font-size: .8em; margin-left: 10px; max-height: 5em; overflow: auto; border: 1px inset red; padding: 1em; background: #eef; }
|
|
85
|
+
#TrivialReporter .finished-at { padding-left: 1em; font-size: .6em; }
|
|
86
|
+
#TrivialReporter.show-passed .passed, #TrivialReporter.show-skipped .skipped { display: block; }
|
|
87
|
+
#TrivialReporter #jasmine_content { position: fixed; right: 100%; }
|
|
88
|
+
#TrivialReporter .runner { border: 1px solid gray; display: block; margin: 5px 0; padding: 2px 0 2px 10px; }
|
|
89
|
+
</style>
|
|
90
|
+
<script type="text/javascript" src="js/jasmine-1.3.1.js"></script>
|
|
91
|
+
<script type="text/javascript" src="js/jasmine-html.js"></script>
|
|
92
|
+
<script src="/testem.js"></script>
|
|
93
|
+
<script type="text/javascript" src="build/aws-sdk-all.js"></script>
|
|
94
|
+
<script type="text/javascript" src="build/tests.js" charset="UTF-8"></script>
|
|
95
|
+
<script type="text/javascript" charset="UTF-8">
|
|
96
|
+
window.addEventListener('load', function() {
|
|
97
|
+
var htmlReporter = new jasmine.HtmlReporter();
|
|
98
|
+
jasmine.getEnv().addReporter(htmlReporter);
|
|
99
|
+
jasmine.getEnv().specFilter = function(spec) {
|
|
100
|
+
return htmlReporter.specFilter(spec);
|
|
101
|
+
};
|
|
102
|
+
jasmine.getEnv().execute();
|
|
103
|
+
});
|
|
104
|
+
</script>
|
|
105
|
+
</head>
|
|
106
|
+
<body>
|
|
107
|
+
|
|
108
|
+
</body>
|
|
109
|
+
</html>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
var system = require('system');
|
|
2
|
+
|
|
3
|
+
function waitFor(testFx, onReady, timeOutMillis) {
|
|
4
|
+
var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 30000,
|
|
5
|
+
start = new Date().getTime(),
|
|
6
|
+
condition = false,
|
|
7
|
+
interval = setInterval(function() {
|
|
8
|
+
if ( (new Date().getTime() - start < maxtimeOutMillis) && !condition ) {
|
|
9
|
+
condition = (typeof(testFx) === "string" ? eval(testFx) : testFx());
|
|
10
|
+
} else {
|
|
11
|
+
if(!condition) {
|
|
12
|
+
console.log("'waitFor()' timeout");
|
|
13
|
+
phantom.exit(1);
|
|
14
|
+
} else {
|
|
15
|
+
typeof(onReady) === "string" ? eval(onReady) : onReady();
|
|
16
|
+
clearInterval(interval);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}, 100);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var page = require('webpage').create();
|
|
23
|
+
|
|
24
|
+
page.onConsoleMessage = function(msg) {
|
|
25
|
+
console.log(msg);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
page.open(system.args[1] || 'test/browser/runner.html', function(status){
|
|
29
|
+
if (status !== "success") {
|
|
30
|
+
console.log("Unable to access network");
|
|
31
|
+
phantom.exit();
|
|
32
|
+
} else {
|
|
33
|
+
var index = 0;
|
|
34
|
+
function printStatus() {
|
|
35
|
+
var items = page.evaluate(function() {
|
|
36
|
+
var symbols = document.body.querySelectorAll('.symbolSummary li');
|
|
37
|
+
if (!symbols) return null;
|
|
38
|
+
|
|
39
|
+
var classes = [];
|
|
40
|
+
for (var i = 0; i < symbols.length; i++) {
|
|
41
|
+
classes.push(symbols[i].className);
|
|
42
|
+
}
|
|
43
|
+
return classes;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (!items) return;
|
|
47
|
+
for (; index < items.length; index++) {
|
|
48
|
+
if (items[index] === 'pending') break;
|
|
49
|
+
var item = '';
|
|
50
|
+
switch (items[index]) {
|
|
51
|
+
case 'skipped': item = ''; break;
|
|
52
|
+
case 'passed': item = '.'; break;
|
|
53
|
+
case 'failed': item = 'X'; break;
|
|
54
|
+
}
|
|
55
|
+
system.stdout.write(item);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var interval = setInterval(printStatus, 10);
|
|
60
|
+
|
|
61
|
+
waitFor(function(){
|
|
62
|
+
return page.evaluate(function(){
|
|
63
|
+
return document.body.querySelector('.symbolSummary .pending') === null;
|
|
64
|
+
});
|
|
65
|
+
}, function(){
|
|
66
|
+
clearInterval(interval);
|
|
67
|
+
var exitCode = page.evaluate(function(){
|
|
68
|
+
console.log('');
|
|
69
|
+
console.log('');
|
|
70
|
+
var list = document.body.querySelectorAll('.results > #details > .specDetail.failed');
|
|
71
|
+
if (list && list.length > 0) {
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(list.length + ' test(s) FAILED:');
|
|
74
|
+
for (i = 0; i < list.length; ++i) {
|
|
75
|
+
var el = list[i],
|
|
76
|
+
desc = el.querySelector('.description'),
|
|
77
|
+
msg = el.querySelector('.resultMessage.fail');
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log(desc.innerText);
|
|
80
|
+
console.log(msg.innerText);
|
|
81
|
+
console.log('');
|
|
82
|
+
}
|
|
83
|
+
return 1;
|
|
84
|
+
} else {
|
|
85
|
+
console.log(document.body.querySelector('.alert > .passingAlert.bar').innerText);
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
phantom.exit(exitCode);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>AWS SDK for JavaScript - Console</title>
|
|
5
|
+
<link rel="stylesheet" href="css/smoothness/jquery-ui-1.10.1.custom.css" />
|
|
6
|
+
<style type="text/css">
|
|
7
|
+
body { font-family: Helvetica, Arial, sans-serif; font-size: 9pt; }
|
|
8
|
+
.padding { padding: 12px; }
|
|
9
|
+
#header { background: #eee; font-size: 1.2em; }
|
|
10
|
+
.selectorControl * { height: 200px; }
|
|
11
|
+
#operationSelector { border: 1px solid #ccc; }
|
|
12
|
+
#operationSelector h3 { padding: 0; margin-top: 0; }
|
|
13
|
+
#serviceSelector { width: 20%; }
|
|
14
|
+
#operationSelector { width: 20%; }
|
|
15
|
+
#operationData { width: 50%; position: relative; top: 7px; font-family: Monaco, fixed; }
|
|
16
|
+
.tableOutput { width: 100%; overflow: scroll; }
|
|
17
|
+
.history-entry { margin-bottom: 12px; }
|
|
18
|
+
.history-entry pre.output { background: #eee; border: 1px solid #ccc; overflow: scroll; height: 300px; }
|
|
19
|
+
.grid { clear: right; }
|
|
20
|
+
.halfwidth { float: left; width: 48%; margin-right: 6px; }
|
|
21
|
+
.halfwidth:last-child { margin-right: 0px; }
|
|
22
|
+
.break { clear: both; }
|
|
23
|
+
table, th, td { border: 1px solid #ccc; border-collapse: collapse; vertical-align: top; }
|
|
24
|
+
|
|
25
|
+
#login-buttons { float: right; }
|
|
26
|
+
|
|
27
|
+
/* jquery-ui overrides */
|
|
28
|
+
:focus { outline-width: 0; }
|
|
29
|
+
</style>
|
|
30
|
+
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
|
|
31
|
+
<script type="text/javascript" src="js/jquery-ui-1.10.1.custom.min.js"></script>
|
|
32
|
+
<script type="text/javascript" src="../../../dist/aws-sdk-all.js"></script>
|
|
33
|
+
<script type="text/javascript" src="appinfo.js"></script>
|
|
34
|
+
<script type="text/template" id="template-historyEntry">
|
|
35
|
+
<div id="history-{entry}" class="history-entry">
|
|
36
|
+
<ul>
|
|
37
|
+
<li>
|
|
38
|
+
<a href="#history-tab-{entry}">
|
|
39
|
+
<img src="img/loading.gif"/>
|
|
40
|
+
{service}.{operation}() — {date}
|
|
41
|
+
</a>
|
|
42
|
+
</li>
|
|
43
|
+
<li><a href="#history-details-tab-{entry}">Details</a></li>
|
|
44
|
+
<li><a href="#history-table-tab-{entry}">Tabular (Experimental)</a></li>
|
|
45
|
+
</ul>
|
|
46
|
+
<div id="history-tab-{entry}">
|
|
47
|
+
<div class="grid">
|
|
48
|
+
<div class="halfwidth">
|
|
49
|
+
<h3>Response</h3>
|
|
50
|
+
<pre class="padding output operationResponse"></pre>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="halfwidth">
|
|
53
|
+
<h3>Request</h3>
|
|
54
|
+
<pre class="padding output operationRequest"></pre>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="break"></div>
|
|
58
|
+
</div>
|
|
59
|
+
<div id="history-details-tab-{entry}">
|
|
60
|
+
<div class="grid">
|
|
61
|
+
<div class="halfwidth">
|
|
62
|
+
<h3>Request Details</h3>
|
|
63
|
+
<pre class="padding output operationRequestDetails"></pre>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="halfwidth">
|
|
66
|
+
<h3>Response Details</h3>
|
|
67
|
+
<pre class="padding output operationResponseDetails"></pre>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="break"></div>
|
|
71
|
+
</div>
|
|
72
|
+
<div id="history-table-tab-{entry}">
|
|
73
|
+
<div class="tableOutput"></div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</script>
|
|
77
|
+
<script type="text/javascript">
|
|
78
|
+
services = {};
|
|
79
|
+
currentServiceVar = null;
|
|
80
|
+
currentService = null;
|
|
81
|
+
currentOperation = null;
|
|
82
|
+
data = null;
|
|
83
|
+
error = null;
|
|
84
|
+
response = null;
|
|
85
|
+
requestCount = 0;
|
|
86
|
+
|
|
87
|
+
function s4() {
|
|
88
|
+
return Math.floor((1 + Math.random()) * 0x10000)
|
|
89
|
+
.toString(16)
|
|
90
|
+
.substring(1);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
function guid() {
|
|
94
|
+
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
|
|
95
|
+
s4() + '-' + s4() + s4() + s4();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Turns a JS object into a table representation using a set of hints
|
|
100
|
+
* to detect the key/value structure.
|
|
101
|
+
*
|
|
102
|
+
* Assume EC2 for now
|
|
103
|
+
*/
|
|
104
|
+
function tableView(items, resultKey) {
|
|
105
|
+
var table = $('<table/>').attr('cellpadding', 5);
|
|
106
|
+
|
|
107
|
+
// transposed table for structures
|
|
108
|
+
if (!Array.isArray(items)) {
|
|
109
|
+
for (var key in items) {
|
|
110
|
+
var row = $('<tr/>');
|
|
111
|
+
$('<th/>').text(key).appendTo(row);
|
|
112
|
+
$('<td/>').text(items[key]).appendTo(row);
|
|
113
|
+
row.appendTo(table);
|
|
114
|
+
}
|
|
115
|
+
return table;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (items.length === 0) return '';
|
|
119
|
+
var i;
|
|
120
|
+
// first build the headers
|
|
121
|
+
var row = $('<tr/>');
|
|
122
|
+
var keys = typeof items[0] === 'object' ? Object.keys(items[0]) : [resultKey];
|
|
123
|
+
for (i = 0; i < keys.length; i++) {
|
|
124
|
+
$('<th/>').text(keys[i]).appendTo(row);
|
|
125
|
+
}
|
|
126
|
+
row.appendTo(table);
|
|
127
|
+
|
|
128
|
+
for (i = 0; i < items.length; i++) {
|
|
129
|
+
row = $('<tr/>');
|
|
130
|
+
if (typeof items[i] === 'object') {
|
|
131
|
+
for (var key in items[i]) {
|
|
132
|
+
var value = items[i][key];
|
|
133
|
+
if (typeof value === 'object') { // complex type
|
|
134
|
+
value = tableView(value);
|
|
135
|
+
}
|
|
136
|
+
$('<td/>').html(value).appendTo(row);
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
$('<td/>').html(items[i]).appendTo(row);
|
|
140
|
+
}
|
|
141
|
+
row.appendTo(table);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return table;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function loadOperationsForService(svc) {
|
|
148
|
+
if (currentServiceVar === svc) return;
|
|
149
|
+
currentServiceVar = svc;
|
|
150
|
+
currentService = services[svc];
|
|
151
|
+
|
|
152
|
+
$('#operationSelector').empty();
|
|
153
|
+
for (var key in currentService.api.operations) {
|
|
154
|
+
var el = $('<option/>').attr('value', key).text(key);
|
|
155
|
+
$('#operationSelector').append(el).change(function() {
|
|
156
|
+
loadOperation($(this).val());
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function loadOperation(operation) {
|
|
162
|
+
if (currentOperation === operation) return;
|
|
163
|
+
currentOperation = operation;
|
|
164
|
+
|
|
165
|
+
var input = currentService.api.operations[operation].input.members;
|
|
166
|
+
$('#operationData').val(JSON.stringify(input, null, 2));
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function loadServices() {
|
|
170
|
+
$('#serviceSelector').empty();
|
|
171
|
+
for (var key in AWS) {
|
|
172
|
+
if (!AWS[key].prototype) continue;
|
|
173
|
+
if (AWS[key].prototype.constructor.__super__.name === 'Service') {
|
|
174
|
+
var svcVarName = key.toLowerCase();
|
|
175
|
+
var svc = services[svcVarName] = window[svcVarName] = new AWS[key]();
|
|
176
|
+
var fullName = svc.api.serviceAbbreviation || svc.api.serviceFullName;
|
|
177
|
+
var el = $('<option/>').attr('value', svcVarName).text(fullName);
|
|
178
|
+
$('#serviceSelector').append(el).change(function () {
|
|
179
|
+
loadOperationsForService($(this).val());
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
function executeOperation() {
|
|
186
|
+
var params = JSON.parse($('#operationData').val() || '{}');
|
|
187
|
+
currentService[currentOperation](params).send();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function template(name, options) {
|
|
191
|
+
var html = $('#template-' + name).html();
|
|
192
|
+
html = html.replace(/\{(.+?)\}/g, function(matches, key) {
|
|
193
|
+
return key in options ? options[key] : '';
|
|
194
|
+
});
|
|
195
|
+
return html;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
function addHistoryEntry(req) {
|
|
199
|
+
req.id = guid();
|
|
200
|
+
|
|
201
|
+
// add entry to page
|
|
202
|
+
$('#history :first').tabs('option', 'active', false);
|
|
203
|
+
$('#history').prepend(template('historyEntry', {
|
|
204
|
+
operation: req.operation,
|
|
205
|
+
service: req.service.api.endpointPrefix,
|
|
206
|
+
entry: req.id,
|
|
207
|
+
date: new Date(),
|
|
208
|
+
}));
|
|
209
|
+
|
|
210
|
+
var reqHttpData = JSON.stringify(req.httpRequest, null, 2);
|
|
211
|
+
var entry = $('#history-' + req.id);
|
|
212
|
+
entry.tabs({collapsible: true});
|
|
213
|
+
entry.find('.operationRequestDetails').text(reqHttpData);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
function updateHistoryEntry(resp) {
|
|
217
|
+
var req = resp.request;
|
|
218
|
+
var entry = $('#history-' + req.id);
|
|
219
|
+
var params = JSON.stringify(req.params);
|
|
220
|
+
var time = new Date().getTime();
|
|
221
|
+
var elapsed = (time - (resp.requestStarted || time)) / 1000;
|
|
222
|
+
var service = req.service.api.endpointPrefix;
|
|
223
|
+
var statusCode = resp.httpResponse.statusCode || 'ERR';
|
|
224
|
+
var retryCount = resp.retryCount || 0;
|
|
225
|
+
var operation = req.operation;
|
|
226
|
+
var info = statusCode + ' ' + elapsed + 's ' + retryCount + ' retries';
|
|
227
|
+
|
|
228
|
+
var data;
|
|
229
|
+
if (resp.error) {
|
|
230
|
+
data = resp.error.message + '\n' + resp.error.stack;
|
|
231
|
+
} else {
|
|
232
|
+
data = AWS.util.copy(resp.data);
|
|
233
|
+
if (data.Body) {
|
|
234
|
+
delete data.Body.parent; // remove circular ref
|
|
235
|
+
data.Body = data.Body.toString();
|
|
236
|
+
}
|
|
237
|
+
data = JSON.stringify(data, null, 2);
|
|
238
|
+
|
|
239
|
+
var tableData = resp.data;
|
|
240
|
+
var resultKey = '';
|
|
241
|
+
entry.find('.tableOutput').html(tableView(tableData, resultKey));
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// debug to console
|
|
245
|
+
var opInfo = service + '.' + operation + '(' + params + ')';
|
|
246
|
+
console.log('[AWS ' + info + ']', opInfo);
|
|
247
|
+
|
|
248
|
+
entry.find('.operationResponse').text(data);
|
|
249
|
+
entry.find('.operationRequest').text(params);
|
|
250
|
+
var link = entry.children('ul').find('a').first();
|
|
251
|
+
link.text('[' + info + '] ' + link.text());
|
|
252
|
+
|
|
253
|
+
if (resp.httpResponse.body) {
|
|
254
|
+
delete resp.httpResponse.body.parent; // remove circular reference
|
|
255
|
+
resp.httpResponse.body = resp.httpResponse.body.toString();
|
|
256
|
+
}
|
|
257
|
+
var respHttpData = JSON.stringify(resp.httpResponse, null, 2);
|
|
258
|
+
entry.find('.operationResponseDetails').text(respHttpData);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function startRequest(resp) {
|
|
262
|
+
addHistoryEntry(resp.request);
|
|
263
|
+
resp.requestStarted = new Date().getTime();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
function endRequest(resp) {
|
|
267
|
+
// set window properties for console debugging
|
|
268
|
+
window.response = resp;
|
|
269
|
+
window.data = resp.data;
|
|
270
|
+
window.error = resp.error;
|
|
271
|
+
window.requestCount++;
|
|
272
|
+
|
|
273
|
+
// update history info
|
|
274
|
+
try {
|
|
275
|
+
updateHistoryEntry(resp);
|
|
276
|
+
} catch (err) {
|
|
277
|
+
console.log(err.message);
|
|
278
|
+
console.log(err.stack);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
function loadEvents() {
|
|
283
|
+
AWS.events.
|
|
284
|
+
on('send', startRequest).
|
|
285
|
+
on('complete', endRequest);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function loaded() {
|
|
289
|
+
$('#selectOperation').tabs({collapsible: true});
|
|
290
|
+
$('#executeOperation').click(executeOperation);
|
|
291
|
+
$('#header .title').text('AWS SDK for JavaScript ' + AWS.VERSION);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function init() {
|
|
295
|
+
AWS.config.update({region: 'us-east-1'});
|
|
296
|
+
loadEvents();
|
|
297
|
+
loaded();
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
function loadIDPCredentials(provider, arn, accessToken) {
|
|
301
|
+
var params = {
|
|
302
|
+
ProviderId: provider,
|
|
303
|
+
RoleArn: arn,
|
|
304
|
+
WebIdentityToken: accessToken
|
|
305
|
+
};
|
|
306
|
+
if (provider === null) delete params.ProviderId;
|
|
307
|
+
|
|
308
|
+
AWS.config.credentials = new AWS.WebIdentityCredentials(params);
|
|
309
|
+
AWS.config.credentials.get(function (err) {
|
|
310
|
+
if (err) {
|
|
311
|
+
console.log(err.message);
|
|
312
|
+
console.log(err.stack);
|
|
313
|
+
}
|
|
314
|
+
else loadServices();
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
$(init);
|
|
319
|
+
</script>
|
|
320
|
+
</head>
|
|
321
|
+
<body>
|
|
322
|
+
<div id="fb-root"></div>
|
|
323
|
+
<script>
|
|
324
|
+
window.fbAsyncInit = function() {
|
|
325
|
+
// init the FB JS SDK
|
|
326
|
+
FB.init({
|
|
327
|
+
appId: window.appInfo.facebook.appId,
|
|
328
|
+
status: false,
|
|
329
|
+
xfbml: false
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
FB.Event.subscribe('auth.authResponseChange', function(response) {
|
|
333
|
+
if (response.status === 'connected') {
|
|
334
|
+
loadIDPCredentials('graph.facebook.com',
|
|
335
|
+
window.appInfo.facebook.roleArn,
|
|
336
|
+
response.authResponse.accessToken);
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
FB.getLoginStatus();
|
|
341
|
+
$('#login-facebook').click(function() { FB.login() });
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
// Load the SDK asynchronously
|
|
345
|
+
(function(d, s, id){
|
|
346
|
+
var js, fjs = d.getElementsByTagName(s)[0];
|
|
347
|
+
if (d.getElementById(id)) {return;}
|
|
348
|
+
js = d.createElement(s); js.id = id;
|
|
349
|
+
js.src = "//connect.facebook.net/en_US/all.js";
|
|
350
|
+
fjs.parentNode.insertBefore(js, fjs);
|
|
351
|
+
}(document, 'script', 'facebook-jssdk'));
|
|
352
|
+
</script>
|
|
353
|
+
|
|
354
|
+
<div id="amazon-root"></div>
|
|
355
|
+
<script type="text/javascript">
|
|
356
|
+
window.onAmazonLoginReady = function() {
|
|
357
|
+
amazon.Login.setClientId(window.appInfo.amazon.appId);
|
|
358
|
+
|
|
359
|
+
$('#login-amazon').click(function() {
|
|
360
|
+
amazon.Login.authorize({scope: 'profile'}, function(response) {
|
|
361
|
+
if (!response.error) {
|
|
362
|
+
loadIDPCredentials('www.amazon.com',
|
|
363
|
+
window.appInfo.amazon.roleArn,
|
|
364
|
+
response.access_token);
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
(function(d) {
|
|
371
|
+
var a = d.createElement('script'); a.type = 'text/javascript';
|
|
372
|
+
a.async = true; a.id = 'amazon-login-sdk';
|
|
373
|
+
a.src = 'https://api-cdn.amazon.com/sdk/login1.js';
|
|
374
|
+
d.getElementById('amazon-root').appendChild(a);
|
|
375
|
+
})(document);
|
|
376
|
+
</script>
|
|
377
|
+
|
|
378
|
+
<script type="text/javascript">
|
|
379
|
+
(function() {
|
|
380
|
+
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
|
|
381
|
+
po.src = 'https://apis.google.com/js/client:plusone.js';
|
|
382
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
|
|
383
|
+
})();
|
|
384
|
+
|
|
385
|
+
function loginToGoogle(response) {
|
|
386
|
+
if (!response.error) {
|
|
387
|
+
loadIDPCredentials(null, window.appInfo.google.roleArn, response.id_token);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
</script>
|
|
391
|
+
|
|
392
|
+
<div id="header" class="padding">
|
|
393
|
+
<span class="title"></span>
|
|
394
|
+
<div id="login-buttons">
|
|
395
|
+
<button id="login-amazon">Login with Amazon</button>
|
|
396
|
+
<button id="login-facebook">Login with Facebook</button>
|
|
397
|
+
<button id="login-google">
|
|
398
|
+
<span
|
|
399
|
+
class="g-signin"
|
|
400
|
+
data-height="short"
|
|
401
|
+
data-callback="loginToGoogle"
|
|
402
|
+
data-clientid="156058024465.apps.googleusercontent.com"
|
|
403
|
+
data-cookiepolicy="single_host_origin"
|
|
404
|
+
data-requestvisibleactions="http://schemas.google.com/AddActivity"
|
|
405
|
+
data-scope="https://www.googleapis.com/auth/plus.login">
|
|
406
|
+
</span>
|
|
407
|
+
</button>
|
|
408
|
+
</div>
|
|
409
|
+
</div>
|
|
410
|
+
<div id="selectOperation">
|
|
411
|
+
<ul>
|
|
412
|
+
<li><a href="#selectOperationTab">Select an operation</a></li>
|
|
413
|
+
</ul>
|
|
414
|
+
<div id="selectOperationTab">
|
|
415
|
+
<div class="selectorControl">
|
|
416
|
+
<select size="10" id="serviceSelector"></select>
|
|
417
|
+
<select size="10" id="operationSelector"></select>
|
|
418
|
+
<textarea id="operationData"></textarea>
|
|
419
|
+
</div>
|
|
420
|
+
<div class="runControl">
|
|
421
|
+
<button id="executeOperation">Run</button>
|
|
422
|
+
</div>
|
|
423
|
+
</div>
|
|
424
|
+
</div>
|
|
425
|
+
<h2>Requests</h2>
|
|
426
|
+
<div id="history">
|
|
427
|
+
</div>
|
|
428
|
+
</body>
|
|
429
|
+
</html>
|
|
Binary file
|
|
Binary file
|