har 0.0.1.dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +24 -0
  5. data/README.mdown +36 -0
  6. data/Rakefile +28 -0
  7. data/bin/har +4 -0
  8. data/har.gemspec +27 -0
  9. data/lib/har.rb +32 -0
  10. data/lib/har/archive.rb +135 -0
  11. data/lib/har/page.rb +19 -0
  12. data/lib/har/schema_type.rb +78 -0
  13. data/lib/har/schemas/browserType +19 -0
  14. data/lib/har/schemas/cacheEntryType +25 -0
  15. data/lib/har/schemas/cacheType +15 -0
  16. data/lib/har/schemas/contentType +26 -0
  17. data/lib/har/schemas/cookieType +32 -0
  18. data/lib/har/schemas/creatorType +18 -0
  19. data/lib/har/schemas/entryType +46 -0
  20. data/lib/har/schemas/logType +40 -0
  21. data/lib/har/schemas/pageTimingsType +17 -0
  22. data/lib/har/schemas/pageType +29 -0
  23. data/lib/har/schemas/postDataType +38 -0
  24. data/lib/har/schemas/recordType +17 -0
  25. data/lib/har/schemas/requestType +53 -0
  26. data/lib/har/schemas/responseType +51 -0
  27. data/lib/har/schemas/timingsType +43 -0
  28. data/lib/har/serializable.rb +22 -0
  29. data/lib/har/version.rb +3 -0
  30. data/lib/har/viewer.rb +99 -0
  31. data/lib/har/viewer/css/SyntaxHighlighter.css +1 -0
  32. data/lib/har/viewer/css/aboutTab.css +1 -0
  33. data/lib/har/viewer/css/domTab.css +1 -0
  34. data/lib/har/viewer/css/domTree.css +1 -0
  35. data/lib/har/viewer/css/harPreview.css +1 -0
  36. data/lib/har/viewer/css/harView.css +1 -0
  37. data/lib/har/viewer/css/harViewer.css +1 -0
  38. data/lib/har/viewer/css/homeTab.css +1 -0
  39. data/lib/har/viewer/css/images/ajax-loader.gif +0 -0
  40. data/lib/har/viewer/css/images/bg-button.gif +0 -0
  41. data/lib/har/viewer/css/images/blank.gif +0 -0
  42. data/lib/har/viewer/css/images/button-background.png +0 -0
  43. data/lib/har/viewer/css/images/checkmark.gif +0 -0
  44. data/lib/har/viewer/css/images/checkmark.png +0 -0
  45. data/lib/har/viewer/css/images/close-sprites.png +0 -0
  46. data/lib/har/viewer/css/images/contextMenuTarget.png +0 -0
  47. data/lib/har/viewer/css/images/contextMenuTargetHover.png +0 -0
  48. data/lib/har/viewer/css/images/download-sprites.png +0 -0
  49. data/lib/har/viewer/css/images/downloadButtons-aero.png +0 -0
  50. data/lib/har/viewer/css/images/group.gif +0 -0
  51. data/lib/har/viewer/css/images/loading_16.gif +0 -0
  52. data/lib/har/viewer/css/images/menu/Thumbs.db +0 -0
  53. data/lib/har/viewer/css/images/menu/shadowAlpha.png +0 -0
  54. data/lib/har/viewer/css/images/menu/tabMenuCheckbox.png +0 -0
  55. data/lib/har/viewer/css/images/menu/tabMenuPin.png +0 -0
  56. data/lib/har/viewer/css/images/menu/tabMenuRadio.png +0 -0
  57. data/lib/har/viewer/css/images/netBarBlocking.gif +0 -0
  58. data/lib/har/viewer/css/images/netBarBlocking2.gif +0 -0
  59. data/lib/har/viewer/css/images/netBarCached.gif +0 -0
  60. data/lib/har/viewer/css/images/netBarConnecting.gif +0 -0
  61. data/lib/har/viewer/css/images/netBarLoaded.gif +0 -0
  62. data/lib/har/viewer/css/images/netBarReceiving.gif +0 -0
  63. data/lib/har/viewer/css/images/netBarResolving.gif +0 -0
  64. data/lib/har/viewer/css/images/netBarResponded.gif +0 -0
  65. data/lib/har/viewer/css/images/netBarSending.gif +0 -0
  66. data/lib/har/viewer/css/images/netBarWaiting.gif +0 -0
  67. data/lib/har/viewer/css/images/page-timeline.png +0 -0
  68. data/lib/har/viewer/css/images/save.png +0 -0
  69. data/lib/har/viewer/css/images/spriteArrows.gif +0 -0
  70. data/lib/har/viewer/css/images/spriteArrows.png +0 -0
  71. data/lib/har/viewer/css/images/tabEnabled.png +0 -0
  72. data/lib/har/viewer/css/images/timeline-sprites.png +0 -0
  73. data/lib/har/viewer/css/images/tooltipConnectorUp.png +0 -0
  74. data/lib/har/viewer/css/images/twisty-sprites.png +0 -0
  75. data/lib/har/viewer/css/images/twistyClosed.png +0 -0
  76. data/lib/har/viewer/css/images/twistyOpen.png +0 -0
  77. data/lib/har/viewer/css/infoTip.css +1 -0
  78. data/lib/har/viewer/css/pageList.css +1 -0
  79. data/lib/har/viewer/css/pageStats.css +1 -0
  80. data/lib/har/viewer/css/pageTimeline.css +1 -0
  81. data/lib/har/viewer/css/popupMenu.css +1 -0
  82. data/lib/har/viewer/css/previewTab.css +1 -0
  83. data/lib/har/viewer/css/requestBody.css +1 -0
  84. data/lib/har/viewer/css/requestList.css +1 -0
  85. data/lib/har/viewer/css/schemaTab.css +1 -0
  86. data/lib/har/viewer/css/tabView.css +1 -0
  87. data/lib/har/viewer/css/toolTip.css +1 -0
  88. data/lib/har/viewer/css/toolbar.css +1 -0
  89. data/lib/har/viewer/css/xhrSpy.css +1 -0
  90. data/lib/har/viewer/index.html +13 -0
  91. data/lib/har/viewer/scripts/app.build.js +0 -0
  92. data/lib/har/viewer/scripts/core/cookies.js +2 -0
  93. data/lib/har/viewer/scripts/core/lib.js +23 -0
  94. data/lib/har/viewer/scripts/core/trace.js +26 -0
  95. data/lib/har/viewer/scripts/domplate/domTree.js +5 -0
  96. data/lib/har/viewer/scripts/domplate/domplate.js +263 -0
  97. data/lib/har/viewer/scripts/domplate/infoTip.js +4 -0
  98. data/lib/har/viewer/scripts/domplate/popupMenu.js +14 -0
  99. data/lib/har/viewer/scripts/domplate/tabView.js +6 -0
  100. data/lib/har/viewer/scripts/domplate/toolTip.js +3 -0
  101. data/lib/har/viewer/scripts/domplate/toolbar.js +3 -0
  102. data/lib/har/viewer/scripts/downloadify/LICENSE.txt +22 -0
  103. data/lib/har/viewer/scripts/downloadify/README.textile +89 -0
  104. data/lib/har/viewer/scripts/downloadify/js/downloadify.min.js +6 -0
  105. data/lib/har/viewer/scripts/downloadify/js/swfobject.js +18 -0
  106. data/lib/har/viewer/scripts/downloadify/media/downloadify.swf +0 -0
  107. data/lib/har/viewer/scripts/downloadify/src/Downloadify.as +162 -0
  108. data/lib/har/viewer/scripts/downloadify/src/downloadify.js +6 -0
  109. data/lib/har/viewer/scripts/excanvas/excanvas.js +21 -0
  110. data/lib/har/viewer/scripts/harPreview.js +149 -0
  111. data/lib/har/viewer/scripts/harViewer.js +244 -0
  112. data/lib/har/viewer/scripts/jquery-plugins/jquery.json.js +6 -0
  113. data/lib/har/viewer/scripts/nls/harViewer.js +1 -0
  114. data/lib/har/viewer/scripts/nls/homeTab.js +1 -0
  115. data/lib/har/viewer/scripts/nls/pageStats.js +2 -0
  116. data/lib/har/viewer/scripts/nls/pageTimeline.js +1 -0
  117. data/lib/har/viewer/scripts/nls/previewTab.js +1 -0
  118. data/lib/har/viewer/scripts/nls/requestBody.js +1 -0
  119. data/lib/har/viewer/scripts/nls/requestList.js +2 -0
  120. data/lib/har/viewer/scripts/preview/harModel.js +7 -0
  121. data/lib/har/viewer/scripts/preview/harSchema.js +308 -0
  122. data/lib/har/viewer/scripts/preview/jsonSchema.js +7 -0
  123. data/lib/har/viewer/scripts/preview/pageList.js +4 -0
  124. data/lib/har/viewer/scripts/preview/ref.js +5 -0
  125. data/lib/har/viewer/scripts/preview/requestBody.js +11 -0
  126. data/lib/har/viewer/scripts/preview/requestList.js +27 -0
  127. data/lib/har/viewer/scripts/requireplugins-jquery-1.4.2.js +204 -0
  128. data/lib/har/viewer/scripts/syntax-highlighter/README.txt +9 -0
  129. data/lib/har/viewer/scripts/syntax-highlighter/shCore.js +20 -0
  130. data/lib/har/viewer/scripts/tabs/aboutTab.html +93 -0
  131. data/lib/har/viewer/scripts/tabs/aboutTab.js +2 -0
  132. data/lib/har/viewer/scripts/tabs/domTab.js +1 -0
  133. data/lib/har/viewer/scripts/tabs/homeTab.html +34 -0
  134. data/lib/har/viewer/scripts/tabs/homeTab.js +5 -0
  135. data/lib/har/viewer/scripts/tabs/pageStats.js +14 -0
  136. data/lib/har/viewer/scripts/tabs/pageTimeline.js +10 -0
  137. data/lib/har/viewer/scripts/tabs/previewTab.js +6 -0
  138. data/lib/har/viewer/scripts/tabs/schemaTab.js +2 -0
  139. data/lib/har/viewer/scripts/xhr-spy/spy.js +2 -0
  140. data/lib/har/viewer/scripts/xhr-spy/spy.php +13 -0
  141. data/lib/har/viewer/scripts/xhr-spy/xhr.js +6 -0
  142. data/lib/har/viewer/scripts/xhr-spy/xhrSpyBookmarklet.js +1 -0
  143. data/schema.json +201 -0
  144. data/spec/fixtures/entry1.json +124 -0
  145. data/spec/fixtures/hars/bad.har +2563 -0
  146. data/spec/fixtures/hars/browser-blocking-time.har +2567 -0
  147. data/spec/fixtures/hars/google.com.har +612 -0
  148. data/spec/fixtures/hars/inline-scripts-block.har +1066 -0
  149. data/spec/fixtures/hars/softwareishard.com.har +5323 -0
  150. data/spec/har/archive_spec.rb +130 -0
  151. data/spec/har/entry_spec.rb +16 -0
  152. data/spec/har/page_spec.rb +24 -0
  153. data/spec/har/viewer_spec.rb +17 -0
  154. data/spec/spec_helper.rb +34 -0
  155. metadata +283 -0
@@ -0,0 +1,130 @@
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
+
3
+ module HAR
4
+ describe Archive do
5
+
6
+ context "creating archives" do
7
+ it "can be created from a String" do
8
+ Archive.from_string('{"log": {}}').should be_kind_of(Archive)
9
+ end
10
+
11
+ it "can be created from a file" do
12
+ Archive.from_file(har_path("browser-blocking-time")).should be_kind_of(Archive)
13
+ end
14
+
15
+ it "saves the archive URI if created from a file" do
16
+ ar = Archive.from_file(har_path("browser-blocking-time"))
17
+ ar.uri.should_not be_nil
18
+ ar.uri.should include("browser-blocking-time")
19
+ end
20
+ end
21
+
22
+ context "fetching data" do
23
+ let(:archive) { Archive.from_file har_path("browser-blocking-time") }
24
+
25
+ it "has a list of pages" do
26
+ ps = archive.pages
27
+
28
+ ps.should be_kind_of(Array)
29
+ ps.size.should == 2
30
+
31
+ ps.first.should be_kind_of(Page)
32
+ end
33
+ end
34
+
35
+ context "comparing" do
36
+ it "knows when two archives are equal" do
37
+ a = Archive.from_file har_path("browser-blocking-time")
38
+ b = Archive.from_file har_path("browser-blocking-time")
39
+
40
+ a.should == b
41
+ end
42
+ end
43
+
44
+ context "merging" do
45
+ it "raises a TypeError if the argument is not an Archive" do
46
+ a = Archive.from_file har_path("browser-blocking-time")
47
+
48
+ lambda { a.merge(1) }.should raise_error(TypeError)
49
+ lambda { a.merge!(1) }.should raise_error(TypeError)
50
+ end
51
+
52
+ it "merges two archives, returning a new archive" do
53
+ a = Archive.from_file har_path("browser-blocking-time")
54
+ b = Archive.from_file har_path("google.com")
55
+
56
+ c = a.merge b
57
+
58
+ c.should_not == a
59
+ c.should_not == b
60
+
61
+ a.should_not == c
62
+ b.should_not == c
63
+
64
+ c.pages.size.should == a.pages.size + b.pages.size
65
+ c.entries.size.should == a.entries.size + b.entries.size
66
+ end
67
+
68
+ it "merges one archive into the other" do
69
+ ref = Archive.from_file har_path("browser-blocking-time")
70
+ a = Archive.from_file har_path("browser-blocking-time")
71
+ b = Archive.from_file har_path("google.com")
72
+
73
+ # caching..
74
+ a.pages
75
+ a.entries
76
+
77
+ a.merge!(b).should be_nil
78
+
79
+ a.pages.size.should == ref.pages.size + b.pages.size
80
+ a.entries.size.should == ref.entries.size + b.entries.size
81
+ end
82
+
83
+ it "adds a comment to pages about their origin" do
84
+ a = Archive.from_file har_path("browser-blocking-time")
85
+ b = Archive.from_file har_path("google.com")
86
+
87
+
88
+ c = a.merge(b)
89
+
90
+ c.pages.last.comment.should include("google.com")
91
+ b.pages.last.comment.should be_nil
92
+ end
93
+ end
94
+
95
+ context "validating" do
96
+ let(:valid) { Archive.from_file har_path("browser-blocking-time") }
97
+ let(:invalid) { Archive.from_file har_path("bad") }
98
+
99
+ it "returns true if the archive is valid" do
100
+ valid.should be_valid
101
+ end
102
+
103
+ it "returns nil if the archive is valid" do
104
+ valid.validate!.should be_nil
105
+ end
106
+
107
+ it "returns false if the archive is invalid" do
108
+ invalid.should_not be_valid
109
+ end
110
+
111
+ it "raises an error if the archive is invalid" do
112
+ lambda { invalid.validate! }.should raise_error(ValidationError, /bad\.har/)
113
+ end
114
+ end
115
+
116
+ context "saving" do
117
+ it "writes the archive to disk" do
118
+ json = '{"log":{}}'
119
+ ar = Archive.from_string json
120
+ out = StringIO.new
121
+
122
+ File.should_receive(:open).with("some.har", "w").and_yield(out)
123
+
124
+ ar.save_to "some.har"
125
+ out.string.should == json
126
+ end
127
+ end
128
+
129
+ end # Archive
130
+ end # HAR
@@ -0,0 +1,16 @@
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
+
3
+ module HAR
4
+ describe Entry do
5
+ let(:entry) { Entry.new json(fixture_path("entry1.json"))}
6
+
7
+ it "has a request" do
8
+ entry.request.should be_kind_of(Request)
9
+ end
10
+
11
+ it "has a response" do
12
+ entry.response.should be_kind_of(Response)
13
+ end
14
+
15
+ end # Entry
16
+ end # HAR
@@ -0,0 +1,24 @@
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
+
3
+ module HAR
4
+ describe Page do
5
+
6
+ context "data" do
7
+ let(:page) { Archive.from_file(google_path).pages.first }
8
+
9
+ it "has entries" do
10
+ page.entries.size.should == 5
11
+ page.entries.each { |e| e.pageref.should == page.id }
12
+ end
13
+
14
+ it "has a title" do
15
+ page.title.should == 'Google'
16
+ end
17
+
18
+ it "has a PageTimings instance" do
19
+ page.timings.should be_kind_of(PageTimings)
20
+ end
21
+ end
22
+
23
+ end # Page
24
+ end # HAR
@@ -0,0 +1,17 @@
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
+
3
+ module HAR
4
+ describe Viewer do
5
+
6
+ context "creating" do
7
+ it "validates the given HARs" do
8
+ lambda { Viewer.new(all_hars) }.should raise_error(ValidationError)
9
+ end
10
+
11
+ it "has a merged archive" do
12
+ Viewer.new(good_hars).har.should be_kind_of(Archive)
13
+ end
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,34 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require "har"
3
+
4
+ module HAR
5
+ module SpecHelper
6
+ def fixture_path(name)
7
+ File.join(File.expand_path("../fixtures", __FILE__), name)
8
+ end
9
+
10
+ def har_path(name)
11
+ fixture_path File.join("hars", "#{name}.har")
12
+ end
13
+
14
+ def json(path)
15
+ JSON.parse(File.read(path))
16
+ end
17
+
18
+ def all_hars
19
+ Dir[fixture_path("hars/*.har")]
20
+ end
21
+
22
+ def google_path
23
+ har_path "google.com"
24
+ end
25
+
26
+ def good_hars
27
+ all_hars.reject { |e| e =~ /bad/ }
28
+ end
29
+ end
30
+ end
31
+
32
+ RSpec.configure do |c|
33
+ c.include HAR::SpecHelper
34
+ end
metadata ADDED
@@ -0,0 +1,283 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: har
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: true
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ - dev
10
+ version: 0.0.1.dev
11
+ platform: ruby
12
+ authors:
13
+ - Jari Bakken
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-10 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: json
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: json-schema
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ version: "0"
45
+ type: :runtime
46
+ version_requirements: *id002
47
+ - !ruby/object:Gem::Dependency
48
+ name: launchy
49
+ prerelease: false
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ type: :runtime
59
+ version_requirements: *id003
60
+ - !ruby/object:Gem::Dependency
61
+ name: rspec
62
+ prerelease: false
63
+ requirement: &id004 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ segments:
69
+ - 2
70
+ - 0
71
+ version: "2.0"
72
+ type: :development
73
+ version_requirements: *id004
74
+ description: Ruby library to work with HTTP archives
75
+ email:
76
+ - jari.bakken@gmail.com
77
+ executables:
78
+ - har
79
+ extensions: []
80
+
81
+ extra_rdoc_files: []
82
+
83
+ files:
84
+ - .gitignore
85
+ - .rspec
86
+ - Gemfile
87
+ - LICENSE
88
+ - README.mdown
89
+ - Rakefile
90
+ - bin/har
91
+ - har.gemspec
92
+ - lib/har.rb
93
+ - lib/har/archive.rb
94
+ - lib/har/page.rb
95
+ - lib/har/schema_type.rb
96
+ - lib/har/schemas/browserType
97
+ - lib/har/schemas/cacheEntryType
98
+ - lib/har/schemas/cacheType
99
+ - lib/har/schemas/contentType
100
+ - lib/har/schemas/cookieType
101
+ - lib/har/schemas/creatorType
102
+ - lib/har/schemas/entryType
103
+ - lib/har/schemas/logType
104
+ - lib/har/schemas/pageTimingsType
105
+ - lib/har/schemas/pageType
106
+ - lib/har/schemas/postDataType
107
+ - lib/har/schemas/recordType
108
+ - lib/har/schemas/requestType
109
+ - lib/har/schemas/responseType
110
+ - lib/har/schemas/timingsType
111
+ - lib/har/serializable.rb
112
+ - lib/har/version.rb
113
+ - lib/har/viewer.rb
114
+ - lib/har/viewer/css/SyntaxHighlighter.css
115
+ - lib/har/viewer/css/aboutTab.css
116
+ - lib/har/viewer/css/domTab.css
117
+ - lib/har/viewer/css/domTree.css
118
+ - lib/har/viewer/css/harPreview.css
119
+ - lib/har/viewer/css/harView.css
120
+ - lib/har/viewer/css/harViewer.css
121
+ - lib/har/viewer/css/homeTab.css
122
+ - lib/har/viewer/css/images/ajax-loader.gif
123
+ - lib/har/viewer/css/images/bg-button.gif
124
+ - lib/har/viewer/css/images/blank.gif
125
+ - lib/har/viewer/css/images/button-background.png
126
+ - lib/har/viewer/css/images/checkmark.gif
127
+ - lib/har/viewer/css/images/checkmark.png
128
+ - lib/har/viewer/css/images/close-sprites.png
129
+ - lib/har/viewer/css/images/contextMenuTarget.png
130
+ - lib/har/viewer/css/images/contextMenuTargetHover.png
131
+ - lib/har/viewer/css/images/download-sprites.png
132
+ - lib/har/viewer/css/images/downloadButtons-aero.png
133
+ - lib/har/viewer/css/images/group.gif
134
+ - lib/har/viewer/css/images/loading_16.gif
135
+ - lib/har/viewer/css/images/menu/Thumbs.db
136
+ - lib/har/viewer/css/images/menu/shadowAlpha.png
137
+ - lib/har/viewer/css/images/menu/tabMenuCheckbox.png
138
+ - lib/har/viewer/css/images/menu/tabMenuPin.png
139
+ - lib/har/viewer/css/images/menu/tabMenuRadio.png
140
+ - lib/har/viewer/css/images/netBarBlocking.gif
141
+ - lib/har/viewer/css/images/netBarBlocking2.gif
142
+ - lib/har/viewer/css/images/netBarCached.gif
143
+ - lib/har/viewer/css/images/netBarConnecting.gif
144
+ - lib/har/viewer/css/images/netBarLoaded.gif
145
+ - lib/har/viewer/css/images/netBarReceiving.gif
146
+ - lib/har/viewer/css/images/netBarResolving.gif
147
+ - lib/har/viewer/css/images/netBarResponded.gif
148
+ - lib/har/viewer/css/images/netBarSending.gif
149
+ - lib/har/viewer/css/images/netBarWaiting.gif
150
+ - lib/har/viewer/css/images/page-timeline.png
151
+ - lib/har/viewer/css/images/save.png
152
+ - lib/har/viewer/css/images/spriteArrows.gif
153
+ - lib/har/viewer/css/images/spriteArrows.png
154
+ - lib/har/viewer/css/images/tabEnabled.png
155
+ - lib/har/viewer/css/images/timeline-sprites.png
156
+ - lib/har/viewer/css/images/tooltipConnectorUp.png
157
+ - lib/har/viewer/css/images/twisty-sprites.png
158
+ - lib/har/viewer/css/images/twistyClosed.png
159
+ - lib/har/viewer/css/images/twistyOpen.png
160
+ - lib/har/viewer/css/infoTip.css
161
+ - lib/har/viewer/css/pageList.css
162
+ - lib/har/viewer/css/pageStats.css
163
+ - lib/har/viewer/css/pageTimeline.css
164
+ - lib/har/viewer/css/popupMenu.css
165
+ - lib/har/viewer/css/previewTab.css
166
+ - lib/har/viewer/css/requestBody.css
167
+ - lib/har/viewer/css/requestList.css
168
+ - lib/har/viewer/css/schemaTab.css
169
+ - lib/har/viewer/css/tabView.css
170
+ - lib/har/viewer/css/toolTip.css
171
+ - lib/har/viewer/css/toolbar.css
172
+ - lib/har/viewer/css/xhrSpy.css
173
+ - lib/har/viewer/index.html
174
+ - lib/har/viewer/scripts/app.build.js
175
+ - lib/har/viewer/scripts/core/cookies.js
176
+ - lib/har/viewer/scripts/core/lib.js
177
+ - lib/har/viewer/scripts/core/trace.js
178
+ - lib/har/viewer/scripts/domplate/domTree.js
179
+ - lib/har/viewer/scripts/domplate/domplate.js
180
+ - lib/har/viewer/scripts/domplate/infoTip.js
181
+ - lib/har/viewer/scripts/domplate/popupMenu.js
182
+ - lib/har/viewer/scripts/domplate/tabView.js
183
+ - lib/har/viewer/scripts/domplate/toolTip.js
184
+ - lib/har/viewer/scripts/domplate/toolbar.js
185
+ - lib/har/viewer/scripts/downloadify/LICENSE.txt
186
+ - lib/har/viewer/scripts/downloadify/README.textile
187
+ - lib/har/viewer/scripts/downloadify/js/downloadify.min.js
188
+ - lib/har/viewer/scripts/downloadify/js/swfobject.js
189
+ - lib/har/viewer/scripts/downloadify/media/downloadify.swf
190
+ - lib/har/viewer/scripts/downloadify/src/Downloadify.as
191
+ - lib/har/viewer/scripts/downloadify/src/downloadify.js
192
+ - lib/har/viewer/scripts/excanvas/excanvas.js
193
+ - lib/har/viewer/scripts/harPreview.js
194
+ - lib/har/viewer/scripts/harViewer.js
195
+ - lib/har/viewer/scripts/jquery-plugins/jquery.json.js
196
+ - lib/har/viewer/scripts/nls/harViewer.js
197
+ - lib/har/viewer/scripts/nls/homeTab.js
198
+ - lib/har/viewer/scripts/nls/pageStats.js
199
+ - lib/har/viewer/scripts/nls/pageTimeline.js
200
+ - lib/har/viewer/scripts/nls/previewTab.js
201
+ - lib/har/viewer/scripts/nls/requestBody.js
202
+ - lib/har/viewer/scripts/nls/requestList.js
203
+ - lib/har/viewer/scripts/preview/harModel.js
204
+ - lib/har/viewer/scripts/preview/harSchema.js
205
+ - lib/har/viewer/scripts/preview/jsonSchema.js
206
+ - lib/har/viewer/scripts/preview/pageList.js
207
+ - lib/har/viewer/scripts/preview/ref.js
208
+ - lib/har/viewer/scripts/preview/requestBody.js
209
+ - lib/har/viewer/scripts/preview/requestList.js
210
+ - lib/har/viewer/scripts/requireplugins-jquery-1.4.2.js
211
+ - lib/har/viewer/scripts/syntax-highlighter/README.txt
212
+ - lib/har/viewer/scripts/syntax-highlighter/shCore.js
213
+ - lib/har/viewer/scripts/tabs/aboutTab.html
214
+ - lib/har/viewer/scripts/tabs/aboutTab.js
215
+ - lib/har/viewer/scripts/tabs/domTab.js
216
+ - lib/har/viewer/scripts/tabs/homeTab.html
217
+ - lib/har/viewer/scripts/tabs/homeTab.js
218
+ - lib/har/viewer/scripts/tabs/pageStats.js
219
+ - lib/har/viewer/scripts/tabs/pageTimeline.js
220
+ - lib/har/viewer/scripts/tabs/previewTab.js
221
+ - lib/har/viewer/scripts/tabs/schemaTab.js
222
+ - lib/har/viewer/scripts/xhr-spy/spy.js
223
+ - lib/har/viewer/scripts/xhr-spy/spy.php
224
+ - lib/har/viewer/scripts/xhr-spy/xhr.js
225
+ - lib/har/viewer/scripts/xhr-spy/xhrSpyBookmarklet.js
226
+ - schema.json
227
+ - spec/fixtures/entry1.json
228
+ - spec/fixtures/hars/bad.har
229
+ - spec/fixtures/hars/browser-blocking-time.har
230
+ - spec/fixtures/hars/google.com.har
231
+ - spec/fixtures/hars/inline-scripts-block.har
232
+ - spec/fixtures/hars/softwareishard.com.har
233
+ - spec/har/archive_spec.rb
234
+ - spec/har/entry_spec.rb
235
+ - spec/har/page_spec.rb
236
+ - spec/har/viewer_spec.rb
237
+ - spec/spec_helper.rb
238
+ has_rdoc: true
239
+ homepage: ""
240
+ licenses: []
241
+
242
+ post_install_message:
243
+ rdoc_options: []
244
+
245
+ require_paths:
246
+ - lib
247
+ required_ruby_version: !ruby/object:Gem::Requirement
248
+ none: false
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ segments:
253
+ - 0
254
+ version: "0"
255
+ required_rubygems_version: !ruby/object:Gem::Requirement
256
+ none: false
257
+ requirements:
258
+ - - ">"
259
+ - !ruby/object:Gem::Version
260
+ segments:
261
+ - 1
262
+ - 3
263
+ - 1
264
+ version: 1.3.1
265
+ requirements: []
266
+
267
+ rubyforge_project: har
268
+ rubygems_version: 1.3.7
269
+ signing_key:
270
+ specification_version: 3
271
+ summary: Ruby library to work with HTTP archives
272
+ test_files:
273
+ - spec/fixtures/entry1.json
274
+ - spec/fixtures/hars/bad.har
275
+ - spec/fixtures/hars/browser-blocking-time.har
276
+ - spec/fixtures/hars/google.com.har
277
+ - spec/fixtures/hars/inline-scripts-block.har
278
+ - spec/fixtures/hars/softwareishard.com.har
279
+ - spec/har/archive_spec.rb
280
+ - spec/har/entry_spec.rb
281
+ - spec/har/page_spec.rb
282
+ - spec/har/viewer_spec.rb
283
+ - spec/spec_helper.rb