staticpress 0.6.2 → 0.7.0
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.
- data/NOTES.markdown +23 -0
- data/Rakefile +1 -6
- data/docs/content/docs/plugins/pagination.haml +30 -0
- data/docs/content/docs/samples/page.markdown +14 -0
- data/docs/content/docs/samples/post.markdown +18 -0
- data/docs/content/docs/themes.markdown +47 -0
- data/lib/skeleton/config.yml +1 -0
- data/lib/staticpress/cli.rb +5 -9
- data/lib/staticpress/content/base.rb +8 -10
- data/lib/staticpress/content/category.rb +17 -4
- data/lib/staticpress/content/collection_content.rb +1 -3
- data/lib/staticpress/content/index.rb +6 -3
- data/lib/staticpress/content/page.rb +4 -0
- data/lib/staticpress/content/post.rb +4 -1
- data/lib/staticpress/content/resource_content.rb +2 -8
- data/lib/staticpress/content/tag.rb +17 -4
- data/lib/staticpress/content/theme.rb +1 -1
- data/lib/staticpress/helpers.rb +5 -5
- data/lib/staticpress/plugins/menu.rb +1 -1
- data/lib/staticpress/plugins/pagination.rb +38 -0
- data/lib/staticpress/theme.rb +45 -17
- data/lib/staticpress/version.rb +1 -1
- data/lib/themes/basic/includes/github.haml +2 -0
- data/lib/themes/basic/layouts/default.haml +1 -0
- data/lib/themes/basic/views/page_paged.haml +6 -0
- data/{tests → spec/fixtures}/test_blog/Gemfile +0 -0
- data/{tests → spec/fixtures}/test_blog/README.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/config.ru +0 -0
- data/{tests → spec/fixtures}/test_blog/config.yml +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-07-20-hello.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-01-announcing-staticpress.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-02-staticpress.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-06-blogging-with-staticpress.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-06-conferences.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-06-in-charlotte.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2011-08-20-forever.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/_posts/2012-09-19-unpublished.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/about.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/chain.html.markdown.erb +0 -0
- data/{tests → spec/fixtures}/test_blog/content/chained.markdown.erb +0 -0
- data/{tests → spec/fixtures}/test_blog/content/contact.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/foo/bar/baz.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/index.markdown +0 -0
- data/{tests → spec/fixtures}/test_blog/content/plain.txt +0 -0
- data/{tests → spec/fixtures}/test_blog/content/ruby.png +0 -0
- data/{tests → spec/fixtures}/test_blog/content/style1.css +0 -0
- data/{tests → spec/fixtures}/test_blog/content/style2.css.sass +0 -0
- data/{tests → spec/fixtures}/test_blog/content/style3.sass +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/assets/scripts/application.js +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/assets/styles/all.sass +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/includes/list_posts.haml +0 -0
- data/{lib/themes/basic → spec/fixtures/test_blog/themes/test_theme}/layouts/archive.haml +0 -0
- data/{lib/themes/basic → spec/fixtures/test_blog/themes/test_theme}/layouts/atom.haml +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/layouts/default.haml +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/layouts/index.haml +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/layouts/post_index.haml +0 -0
- data/{tests → spec/fixtures}/test_blog/themes/test_theme/views/default.haml +0 -0
- data/spec/integration/editing_blog_contents_spec.rb +52 -0
- data/spec/integration/editing_blog_spec.rb +42 -0
- data/spec/integration/getting_started_spec.rb +29 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/support/custom_matchers.rb +15 -0
- data/spec/support/fixtures.rb +35 -0
- data/spec/support/integration_support.rb +230 -0
- data/spec/support/unit_support.rb +18 -0
- data/spec/unit/staticpress/content/base_spec.rb +327 -0
- data/spec/unit/staticpress/content/category_spec.rb +60 -0
- data/spec/unit/staticpress/content/index_spec.rb +48 -0
- data/spec/unit/staticpress/content/page_spec.rb +70 -0
- data/spec/unit/staticpress/content/post_spec.rb +54 -0
- data/spec/unit/staticpress/content/resource_content_spec.rb +21 -0
- data/spec/unit/staticpress/content/tag_spec.rb +53 -0
- data/spec/unit/staticpress/content/theme_spec.rb +31 -0
- data/spec/unit/staticpress/helpers_spec.rb +72 -0
- data/spec/unit/staticpress/js_object_spec.rb +61 -0
- data/spec/unit/staticpress/metadata_spec.rb +15 -0
- data/spec/unit/staticpress/route_spec.rb +219 -0
- data/spec/unit/staticpress/server_spec.rb +23 -0
- data/spec/unit/staticpress/settings_spec.rb +19 -0
- data/spec/unit/staticpress/site_spec.rb +26 -0
- data/spec/unit/staticpress/theme_spec.rb +80 -0
- data/spec/unit/staticpress/view_helpers_spec.rb +40 -0
- data/spec/unit/staticpress_spec.rb +27 -0
- data/staticpress.gemspec +3 -4
- metadata +133 -136
- data/features/editing_blog.feature +0 -24
- data/features/editing_blog_contents.feature +0 -40
- data/features/getting_started.feature +0 -17
- data/features/step_definitions/editing_blog_contents_steps.rb +0 -128
- data/features/step_definitions/editing_blog_steps.rb +0 -52
- data/features/step_definitions/getting_started_steps.rb +0 -51
- data/features/support/env.rb +0 -30
- data/lib/themes/basic/layouts/post_index.haml +0 -15
- data/lib/themes/basic/views/default.haml +0 -10
- data/tests/staticpress/configuration_test.rb +0 -4
- data/tests/staticpress/content/base_test.rb +0 -291
- data/tests/staticpress/content/category_test.rb +0 -48
- data/tests/staticpress/content/index_test.rb +0 -40
- data/tests/staticpress/content/page_test.rb +0 -56
- data/tests/staticpress/content/post_test.rb +0 -42
- data/tests/staticpress/content/resource_content_test.rb +0 -17
- data/tests/staticpress/content/tag_test.rb +0 -39
- data/tests/staticpress/content/theme_test.rb +0 -26
- data/tests/staticpress/helpers_test.rb +0 -63
- data/tests/staticpress/js_object_test.rb +0 -47
- data/tests/staticpress/metadata_test.rb +0 -14
- data/tests/staticpress/plugin_test.rb +0 -4
- data/tests/staticpress/pusher_test.rb +0 -9
- data/tests/staticpress/route_test.rb +0 -186
- data/tests/staticpress/server_test.rb +0 -17
- data/tests/staticpress/settings_test.rb +0 -13
- data/tests/staticpress/site_test.rb +0 -20
- data/tests/staticpress/theme_test.rb +0 -83
- data/tests/staticpress/view_helpers_test.rb +0 -32
- data/tests/staticpress_test.rb +0 -18
- data/tests/test_blog/themes/test_theme/layouts/archive.haml +0 -0
- data/tests/test_blog/themes/test_theme/layouts/atom.haml +0 -0
- data/tests/test_case.rb +0 -54
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
Feature: Editing blog
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given a blog exists
|
|
5
|
-
|
|
6
|
-
Scenario: Creating a new blog post
|
|
7
|
-
When I create a new post
|
|
8
|
-
Then I can edit the post
|
|
9
|
-
|
|
10
|
-
Scenario: Creating a static page
|
|
11
|
-
When I create a new page
|
|
12
|
-
Then I can edit the page
|
|
13
|
-
|
|
14
|
-
Scenario: Copying a built-in plugin
|
|
15
|
-
When I fork a plugin
|
|
16
|
-
Then I can edit the forked plugin
|
|
17
|
-
|
|
18
|
-
Scenario: Copying and renaming a built-in plugin
|
|
19
|
-
When I fork and rename a plugin
|
|
20
|
-
Then I can edit my plugin
|
|
21
|
-
|
|
22
|
-
Scenario: Copying the default theme
|
|
23
|
-
When I fork the default theme
|
|
24
|
-
Then I can edit the theme files
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
Feature: Editing blog contents
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given a blog with content exists
|
|
5
|
-
|
|
6
|
-
Scenario: Creating a static page with multiple formats
|
|
7
|
-
When I create a simple page with multiple formats
|
|
8
|
-
And build the site
|
|
9
|
-
Then the formats page only contains markup
|
|
10
|
-
|
|
11
|
-
Scenario: Listing all routes
|
|
12
|
-
When I list my blog's URLs
|
|
13
|
-
Then the static pages are present
|
|
14
|
-
|
|
15
|
-
Scenario: Building a site
|
|
16
|
-
Then the output directory does not exist
|
|
17
|
-
When I build the site
|
|
18
|
-
Then the output directory contains some markup files
|
|
19
|
-
|
|
20
|
-
Scenario: Building a site (verbose)
|
|
21
|
-
When I build the site verbosely
|
|
22
|
-
Then I see each output file
|
|
23
|
-
|
|
24
|
-
Scenario: Building a site with a custom homepage
|
|
25
|
-
When I create a custom home page
|
|
26
|
-
And I build the site
|
|
27
|
-
Then the build homepage looks good
|
|
28
|
-
|
|
29
|
-
Scenario: Pushing a compiled site to a remote location
|
|
30
|
-
Given I build the site
|
|
31
|
-
When I add a custom deployment strategy
|
|
32
|
-
And push the site
|
|
33
|
-
Then the site is deployed
|
|
34
|
-
|
|
35
|
-
Scenario: Deploying site (build and push in one step)
|
|
36
|
-
Given I add a custom deployment strategy
|
|
37
|
-
And the site is not built or deployed
|
|
38
|
-
When I deploy the site
|
|
39
|
-
Then the output directory contains some markup files
|
|
40
|
-
And the site is deployed
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Feature: Getting started
|
|
2
|
-
|
|
3
|
-
Scenario: Getting help
|
|
4
|
-
Given I ask for help
|
|
5
|
-
Then I am pointed in the right direction
|
|
6
|
-
|
|
7
|
-
Scenario: Finding the version
|
|
8
|
-
Given I want Staticpress' version
|
|
9
|
-
Then I see the version
|
|
10
|
-
|
|
11
|
-
Scenario: Creating a new blog
|
|
12
|
-
When I make a new blog
|
|
13
|
-
Then the minimal files are present
|
|
14
|
-
|
|
15
|
-
Scenario: Creating a new blog with a custum title
|
|
16
|
-
When I make a new blog called "This is my blog"
|
|
17
|
-
Then Staticpress should remember my blog title
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
Given /^a blog with content exists$/ do
|
|
2
|
-
create_sample_blog
|
|
3
|
-
run_simple 'staticpress create_page about'
|
|
4
|
-
run_simple 'staticpress create hello-goodbye'
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
Given /^the site is not built or deployed$/ do
|
|
8
|
-
files = [
|
|
9
|
-
'public/index.html',
|
|
10
|
-
'public/about/index.html',
|
|
11
|
-
'../deployed/index.html',
|
|
12
|
-
'../deployed/about/index.html'
|
|
13
|
-
]
|
|
14
|
-
check_file_presence files, false
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
When /^I create a simple page with multiple formats$/ do
|
|
19
|
-
write_file 'content/formats.markdown.erb', 'hello world'
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
When /^(I )?(\w+) the site$/ do |ignored, action|
|
|
23
|
-
run_simple "staticpress #{action}"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
When /^I list my blog's URLs$/ do
|
|
27
|
-
run_simple 'staticpress list url_path'
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
When /^I build the site verbosely$/ do
|
|
31
|
-
run_simple 'staticpress build --verbose'
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
When /^I create a custom home page$/ do
|
|
35
|
-
write_file 'content/index.markdown', <<-MARKDOWN
|
|
36
|
-
---
|
|
37
|
-
title: Custom Home Page
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
in custom page
|
|
41
|
-
MARKDOWN
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
When /^I add a custom deployment strategy$/ do
|
|
45
|
-
append_to_file 'config.yml', <<-YAML
|
|
46
|
-
:deployment_strategies:
|
|
47
|
-
:custom: 'cp -R public ../deployed'
|
|
48
|
-
YAML
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Then /^the formats page only contains markup$/ do
|
|
53
|
-
check_exact_file_content 'public/formats/index.html', <<-HTML
|
|
54
|
-
<!DOCTYPE html>
|
|
55
|
-
<html>
|
|
56
|
-
<head>
|
|
57
|
-
<meta charset='utf-8' />
|
|
58
|
-
<title>Formats | Transient Thoughts</title>
|
|
59
|
-
<link href='/assets/basic/styles/all.css' rel='stylesheet' type='text/css' />
|
|
60
|
-
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js'></script>
|
|
61
|
-
<script src='/assets/basic/scripts/application.js'></script>
|
|
62
|
-
</head>
|
|
63
|
-
<body>
|
|
64
|
-
<header>
|
|
65
|
-
<div class='site-title'>Transient Thoughts</div>
|
|
66
|
-
<div class='site-subtitle'>A blogging framework for hackers</div>
|
|
67
|
-
</header>
|
|
68
|
-
<nav></nav>
|
|
69
|
-
<section><p>hello world</p></section>
|
|
70
|
-
<section></section>
|
|
71
|
-
</body>
|
|
72
|
-
</html>
|
|
73
|
-
HTML
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
Then /^the static pages are present$/ do
|
|
77
|
-
assert_partial_output '/', all_output
|
|
78
|
-
assert_partial_output '/about', all_output
|
|
79
|
-
assert_partial_output '/hello-goodbye', all_output
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
Then /^the output directory does not exist$/ do
|
|
83
|
-
check_directory_presence ['public'], false
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
Then /^the output directory contains some markup files$/ do
|
|
87
|
-
files = [
|
|
88
|
-
'public/index.html',
|
|
89
|
-
'public/about/index.html'
|
|
90
|
-
]
|
|
91
|
-
check_file_presence files, true
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
Then /^I see each output file$/ do
|
|
95
|
-
assert_partial_output " page public/about/index.html", all_output
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
Then /^the build homepage looks good$/ do
|
|
99
|
-
check_exact_file_content 'public/index.html', <<-HTML
|
|
100
|
-
<!DOCTYPE html>
|
|
101
|
-
<html>
|
|
102
|
-
<head>
|
|
103
|
-
<meta charset='utf-8' />
|
|
104
|
-
<title>Custom Home Page | Transient Thoughts</title>
|
|
105
|
-
<link href='/assets/basic/styles/all.css' rel='stylesheet' type='text/css' />
|
|
106
|
-
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js'></script>
|
|
107
|
-
<script src='/assets/basic/scripts/application.js'></script>
|
|
108
|
-
</head>
|
|
109
|
-
<body>
|
|
110
|
-
<header>
|
|
111
|
-
<div class='site-title'>Transient Thoughts</div>
|
|
112
|
-
<div class='site-subtitle'>A blogging framework for hackers</div>
|
|
113
|
-
</header>
|
|
114
|
-
<nav></nav>
|
|
115
|
-
<section><p>in custom page</p></section>
|
|
116
|
-
<section></section>
|
|
117
|
-
</body>
|
|
118
|
-
</html>
|
|
119
|
-
HTML
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
Then /^the site is deployed$/ do
|
|
123
|
-
files = [
|
|
124
|
-
'../deployed/index.html',
|
|
125
|
-
'../deployed/about/index.html'
|
|
126
|
-
]
|
|
127
|
-
check_file_presence files, true
|
|
128
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
Given /^a blog exists$/ do
|
|
2
|
-
create_sample_blog
|
|
3
|
-
end
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
When /^I create a new post$/ do
|
|
7
|
-
run_simple 'staticpress create \'Hello World\''
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
When /^I create a new page$/ do
|
|
11
|
-
run_simple 'staticpress create_page about'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
When /^I fork a plugin$/ do
|
|
15
|
-
run_simple 'staticpress fork_plugin blockquote'
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
When /^I fork and rename a plugin$/ do
|
|
19
|
-
run_simple 'staticpress fork_plugin blockquote pullquote'
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
When /^I fork the default theme$/ do
|
|
23
|
-
run_simple 'staticpress fork_theme'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Then /^I can edit the post$/ do
|
|
28
|
-
now = Time.now.utc
|
|
29
|
-
filename = [
|
|
30
|
-
now.year,
|
|
31
|
-
('%02d' % now.month),
|
|
32
|
-
('%02d' % now.day),
|
|
33
|
-
'hello-world.markdown'
|
|
34
|
-
].join('-')
|
|
35
|
-
verify_directory_contains_file 'content/_posts', filename
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
Then /^I can edit the page$/ do
|
|
39
|
-
verify_directory_contains_file 'content', 'about.markdown'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
Then /^I can edit the forked plugin$/ do
|
|
43
|
-
verify_directory_contains_file 'plugins', 'blockquote.rb'
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
Then /^I can edit my plugin$/ do
|
|
47
|
-
verify_directory_contains_file 'plugins', 'pullquote.rb'
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
Then /^I can edit the theme files$/ do
|
|
51
|
-
check_directory_presence ['themes/basic'], true
|
|
52
|
-
end
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
Given /^I ask for help$/ do
|
|
2
|
-
commands = [
|
|
3
|
-
'staticpress',
|
|
4
|
-
'staticpress help',
|
|
5
|
-
'staticpress -h',
|
|
6
|
-
'staticpress --help'
|
|
7
|
-
]
|
|
8
|
-
run_one_of *commands
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
Given /^I want Staticpress' version$/ do
|
|
12
|
-
commands = [
|
|
13
|
-
'staticpress version',
|
|
14
|
-
'staticpress -v',
|
|
15
|
-
'staticpress --version'
|
|
16
|
-
]
|
|
17
|
-
run_one_of *commands
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
When /^I make a new blog( called "(.+)")?$/ do |ignored, title|
|
|
22
|
-
create_sample_blog title
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Then /^I am pointed in the right direction$/ do
|
|
27
|
-
assert_exit_status 0
|
|
28
|
-
assert_partial_output 'Usage', all_output
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
Then /^I see the version$/ do
|
|
32
|
-
assert_exit_status 0
|
|
33
|
-
assert_partial_output 'Staticpress', all_output
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
Then /^the minimal files are present$/ do
|
|
37
|
-
files = [
|
|
38
|
-
'config.ru',
|
|
39
|
-
'config.yml',
|
|
40
|
-
'Gemfile',
|
|
41
|
-
'README.markdown'
|
|
42
|
-
]
|
|
43
|
-
check_file_presence files, true
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
Then /^Staticpress should remember my blog title$/ do
|
|
47
|
-
check_file_content 'config.yml', <<-YAML, true
|
|
48
|
-
---
|
|
49
|
-
:title: This is my blog
|
|
50
|
-
YAML
|
|
51
|
-
end
|
data/features/support/env.rb
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
require 'aruba/cucumber'
|
|
2
|
-
|
|
3
|
-
require 'compass'
|
|
4
|
-
require 'debugger'
|
|
5
|
-
require 'haml'
|
|
6
|
-
require 'redcarpet'
|
|
7
|
-
require 'sass'
|
|
8
|
-
|
|
9
|
-
require_relative '../../lib/staticpress'
|
|
10
|
-
|
|
11
|
-
module IntegrationHelpers
|
|
12
|
-
def create_sample_blog(title = 'Transient Thoughts')
|
|
13
|
-
blog_title = title ? "'#{title}'" : nil
|
|
14
|
-
run_simple "staticpress new temporary_blog #{blog_title}"
|
|
15
|
-
cd('temporary_blog')
|
|
16
|
-
append_to_file 'Gemfile', <<-RUBY
|
|
17
|
-
gem 'staticpress', :path => '../../..'
|
|
18
|
-
RUBY
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def run_one_of(*commands)
|
|
22
|
-
run_simple commands.shuffle.first
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def verify_directory_contains_file(directory, file)
|
|
26
|
-
check_directory_presence [directory], true
|
|
27
|
-
check_file_presence ["#{directory}/#{file}"], true
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
World IntegrationHelpers
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
!!! 5
|
|
2
|
-
%html
|
|
3
|
-
%head
|
|
4
|
-
%meta{ :charset => 'utf-8' }/
|
|
5
|
-
%title= page.full_title
|
|
6
|
-
%link{ :rel => :stylesheet, :href => '/assets/basic/styles/all.css', :type => 'text/css' }/
|
|
7
|
-
%script{ :src => 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js' }
|
|
8
|
-
%script{ :src => '/assets/basic/scripts/application.js' }
|
|
9
|
-
%body
|
|
10
|
-
%header
|
|
11
|
-
%div.site-title= config.title
|
|
12
|
-
%div.site-subtitle= config.subtitle
|
|
13
|
-
%nav= root_menu
|
|
14
|
-
%section= yield
|
|
15
|
-
%section
|
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
require_relative '../../test_case'
|
|
2
|
-
|
|
3
|
-
class ContentBaseTest < TestCase
|
|
4
|
-
let(:category) { Staticpress::Content::Category.new :name => 'programming' }
|
|
5
|
-
let(:category_1) { Staticpress::Content::Category.new(:name => 'programming', :number => '1') }
|
|
6
|
-
let(:category_2) { Staticpress::Content::Category.new(:name => 'programming', :number => '2') }
|
|
7
|
-
|
|
8
|
-
let(:index) { Staticpress::Content::Index.new }
|
|
9
|
-
let(:index_2) { Staticpress::Content::Index.new :number => 2 }
|
|
10
|
-
|
|
11
|
-
let(:chained) { Staticpress::Content::Page.new(:slug => 'chained') }
|
|
12
|
-
let(:chain) { Staticpress::Content::Page.new(:slug => 'chain.html') }
|
|
13
|
-
let(:page) { Staticpress::Content::Page.new(:slug => 'about') }
|
|
14
|
-
let(:second_page) { Staticpress::Content::Page.new :slug => 'contact' }
|
|
15
|
-
let(:page_root) { Staticpress::Content::Page.new :slug => '' }
|
|
16
|
-
let(:style_2) { Staticpress::Content::Page.new :slug => 'style2.css' }
|
|
17
|
-
let(:page_nested) { Staticpress::Content::Page.new :slug => 'foo/bar/baz' }
|
|
18
|
-
let(:static_bin) { Staticpress::Content::Page.new :slug => 'ruby.png' }
|
|
19
|
-
let(:static_txt) { Staticpress::Content::Page.new :slug => 'plain.txt' }
|
|
20
|
-
let(:page_fake) { Staticpress::Content::Page.new :slug => 'i/dont/exist' }
|
|
21
|
-
|
|
22
|
-
let(:post) { Staticpress::Content::Post.new(:year => '2011', :month => '07', :day => '20', :title => 'hello') }
|
|
23
|
-
let(:unpublished) { Staticpress::Content::Post.new(:year => '2012', :month => '09', :day => '19', :title => 'unpublished') }
|
|
24
|
-
|
|
25
|
-
let(:tag) { Staticpress::Content::Tag.new :name => 'charlotte' }
|
|
26
|
-
|
|
27
|
-
let(:asset_style) { Staticpress::Content::Theme.new :theme => 'test_theme', :asset_type => 'styles', :slug => 'all' }
|
|
28
|
-
let(:asset_script) { Staticpress::Content::Theme.new :theme => 'test_theme', :asset_type => 'scripts', :slug => 'application.js' }
|
|
29
|
-
|
|
30
|
-
def test__equalsequals
|
|
31
|
-
assert_operator category, :==, Staticpress::Content::Category.new(:name => 'programming')
|
|
32
|
-
refute_operator category, :==, nil
|
|
33
|
-
|
|
34
|
-
assert_operator index, :==, Staticpress::Content::Index.new(:number => 1)
|
|
35
|
-
refute_operator index, :==, index_2
|
|
36
|
-
refute_operator index, :==, nil
|
|
37
|
-
|
|
38
|
-
assert_operator page, :==, Staticpress::Content::Page.new(:slug => 'about')
|
|
39
|
-
refute_operator page, :==, second_page
|
|
40
|
-
refute_operator page, :==, nil
|
|
41
|
-
assert_operator static_bin, :==, Staticpress::Content::Page.new(:slug => 'ruby.png')
|
|
42
|
-
refute_operator static_bin, :==, nil
|
|
43
|
-
refute_operator static_bin, :==, static_txt
|
|
44
|
-
|
|
45
|
-
assert_operator post, :==, Staticpress::Content::Post.new(:year => '2011', :month => '07', :day => '20', :title => 'hello')
|
|
46
|
-
refute_operator post, :==, nil
|
|
47
|
-
|
|
48
|
-
assert_operator tag, :==, Staticpress::Content::Tag.new(:name => 'charlotte')
|
|
49
|
-
refute_operator tag, :==, nil
|
|
50
|
-
|
|
51
|
-
assert_operator asset_style, :==, Staticpress::Content::Theme.new(:theme => 'test_theme', :asset_type => 'styles', :slug => 'all')
|
|
52
|
-
refute_operator asset_style, :==, nil
|
|
53
|
-
|
|
54
|
-
refute_operator Staticpress::Content::Category.new(:name => 'programming'), :==, Staticpress::Content::Tag.new(:name => 'programming')
|
|
55
|
-
refute_operator Staticpress::Content::Tag.new(:name => 'charlotte'), :==, Staticpress::Content::Category.new(:name => 'charlotte')
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_content_type
|
|
59
|
-
assert_equal 'text/html', chained.content_type
|
|
60
|
-
assert_equal 'text/html', page.content_type
|
|
61
|
-
assert_equal 'text/css', style_2.content_type
|
|
62
|
-
assert_equal 'image/png', static_bin.content_type
|
|
63
|
-
assert_equal 'text/plain', static_txt.content_type
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def test_exist?
|
|
67
|
-
assert category.exist?, "#{category} does not exist"
|
|
68
|
-
assert index.exist?, "#{index} does not exist"
|
|
69
|
-
|
|
70
|
-
assert chained.exist?, "#{chained} does not exist"
|
|
71
|
-
assert chain.exist?, "#{chain} does not exist"
|
|
72
|
-
assert page.exist?, "#{page} does not exist"
|
|
73
|
-
assert second_page.exist?, "#{second_page} does not exist"
|
|
74
|
-
assert static_bin.exist?, "#{static_bin} does not exist"
|
|
75
|
-
assert static_txt.exist?, "#{static_txt} does not exist"
|
|
76
|
-
assert page_root.exist?, "#{page_root} does not exist"
|
|
77
|
-
|
|
78
|
-
assert post.exist?, "#{post} does not exist"
|
|
79
|
-
assert unpublished.exist?, "#{unpublished} does not exist"
|
|
80
|
-
assert tag.exist?, "#{tag} does not exist"
|
|
81
|
-
|
|
82
|
-
assert asset_style.exist?, "#{asset_style} does not exist"
|
|
83
|
-
assert asset_script.exist?, "#{asset_script} does not exist"
|
|
84
|
-
|
|
85
|
-
refute page_fake.exist?, "#{page_fake} exists"
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def test_find_by_url_path
|
|
89
|
-
assert_equal category, Staticpress::Content::Category.find_by_url_path('/category/programming')
|
|
90
|
-
assert_equal index, Staticpress::Content::Index.find_by_url_path('/')
|
|
91
|
-
|
|
92
|
-
assert_equal page_root, Staticpress::Content::Page.find_by_url_path('/')
|
|
93
|
-
assert_equal chained, Staticpress::Content::Page.find_by_url_path('/chained')
|
|
94
|
-
assert_equal page, Staticpress::Content::Page.find_by_url_path('/about')
|
|
95
|
-
assert_equal static_bin, Staticpress::Content::Page.find_by_url_path('/ruby.png')
|
|
96
|
-
|
|
97
|
-
assert_equal post, Staticpress::Content::Post.find_by_url_path('/2011/07/20/hello')
|
|
98
|
-
assert_equal tag, Staticpress::Content::Tag.find_by_url_path('/tag/charlotte')
|
|
99
|
-
|
|
100
|
-
assert_equal asset_style, Staticpress::Content::Theme.find_by_url_path('/assets/test_theme/styles/all')
|
|
101
|
-
assert_equal asset_script, Staticpress::Content::Theme.find_by_url_path('/assets/test_theme/scripts/application.js')
|
|
102
|
-
|
|
103
|
-
assert_nil Staticpress::Content::Theme.find_by_url_path(nil)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def test_full_title
|
|
107
|
-
assert_equal 'Foo -> Bar -> Baz | Test Blog', page_nested.full_title
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def test_markup_template?
|
|
111
|
-
assert chained.markup_template?, "#{chained} is not markup"
|
|
112
|
-
assert chain.markup_template?, "#{chain} is not markup"
|
|
113
|
-
assert page.markup_template?, "#{page} is not markup"
|
|
114
|
-
|
|
115
|
-
refute style_2.markup_template?, "#{chained} is markup"
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test_output_path
|
|
119
|
-
output_directory = Staticpress.blog_path + 'public'
|
|
120
|
-
assert_equal (output_directory + 'chained' + 'index.html'), chained.output_path
|
|
121
|
-
assert_equal (output_directory + 'chain.html'), chain.output_path
|
|
122
|
-
assert_equal (output_directory + 'about' + 'index.html'), page.output_path
|
|
123
|
-
assert_equal (output_directory + 'index.html'), page_root.output_path
|
|
124
|
-
assert_equal (output_directory + 'style2.css'), style_2.output_path
|
|
125
|
-
assert_equal (output_directory + 'ruby.png'), static_bin.output_path
|
|
126
|
-
assert_equal (output_directory + 'plain.txt'), static_txt.output_path
|
|
127
|
-
assert_equal (output_directory + '2011' + '07' + '20' + 'hello' + 'index.html'), post.output_path
|
|
128
|
-
assert_equal (output_directory + 'assets' + 'test_theme' + 'styles' + 'all'), asset_style.output_path
|
|
129
|
-
assert_equal (output_directory + 'assets' + 'test_theme' + 'scripts' + 'application.js'), asset_script.output_path
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def test_params
|
|
133
|
-
expected = { :name => 'charlotte', :number => 1 }
|
|
134
|
-
assert_equal expected, tag.params
|
|
135
|
-
assert_equal expected, Staticpress::Content::Tag.new(:name => 'charlotte', :number => nil).params
|
|
136
|
-
assert_equal expected, Staticpress::Content::Tag.new(:name => 'charlotte', :number => 1).params
|
|
137
|
-
assert_equal expected, Staticpress::Content::Tag.new(:name => 'charlotte', :number => '1').params
|
|
138
|
-
|
|
139
|
-
assert_equal({ :slug => 'chain.html' }, Staticpress::Content::Page.new(:slug => 'chain.html').params)
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def test_raw
|
|
143
|
-
assert_equal '= partial :list_posts, :posts => page.sub_content', category.raw
|
|
144
|
-
|
|
145
|
-
assert_equal "<%= 'Processed with ERB' %>, then Markdown.", chained.raw
|
|
146
|
-
assert_equal 'in page', page.raw
|
|
147
|
-
assert_equal "in page\n\nin page", second_page.raw
|
|
148
|
-
assert_equal 'this file intentionally left blank', static_txt.raw
|
|
149
|
-
|
|
150
|
-
assert_equal 'in post', post.raw
|
|
151
|
-
assert_equal '= partial :list_posts, :posts => page.sub_content', tag.raw
|
|
152
|
-
assert_equal '@import "compass/reset/utilities"', asset_style.raw
|
|
153
|
-
|
|
154
|
-
expected = <<-JS
|
|
155
|
-
(function ($) {
|
|
156
|
-
$(document).ready(function () {
|
|
157
|
-
});
|
|
158
|
-
})(jQuery);
|
|
159
|
-
JS
|
|
160
|
-
assert_equal expected.strip, asset_script.raw
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def test_render
|
|
164
|
-
expected_page = <<-HTML
|
|
165
|
-
<!DOCTYPE html>
|
|
166
|
-
<html>
|
|
167
|
-
<head>
|
|
168
|
-
<title>About | Test Blog</title>
|
|
169
|
-
</head>
|
|
170
|
-
<body>
|
|
171
|
-
<p>in page</p>
|
|
172
|
-
</body>
|
|
173
|
-
</html>
|
|
174
|
-
HTML
|
|
175
|
-
assert_equal expected_page, page.render
|
|
176
|
-
|
|
177
|
-
expected_style2 = <<-CSS
|
|
178
|
-
body{color:green}
|
|
179
|
-
CSS
|
|
180
|
-
assert_equal expected_style2, style_2.render
|
|
181
|
-
|
|
182
|
-
assert_equal 'this file intentionally left blank', static_txt.render
|
|
183
|
-
refute_raises(Sass::SyntaxError) { asset_style.render }
|
|
184
|
-
|
|
185
|
-
expected = <<-SASS
|
|
186
|
-
SASS
|
|
187
|
-
assert_equal expected, asset_style.render
|
|
188
|
-
|
|
189
|
-
expected = <<-JS
|
|
190
|
-
(function ($) {
|
|
191
|
-
$(document).ready(function () {
|
|
192
|
-
});
|
|
193
|
-
})(jQuery);
|
|
194
|
-
JS
|
|
195
|
-
assert_equal expected, asset_script.render
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
def test_render_partial
|
|
199
|
-
assert_equal "<p>Processed with ERB, then Markdown.</p>\n", chained.render_partial
|
|
200
|
-
assert_equal "<p>in page</p>\n", page.render_partial
|
|
201
|
-
assert_equal "<p>in page</p>\n\n<p>in page</p>\n", second_page.render_partial
|
|
202
|
-
|
|
203
|
-
expected_style2 = <<-CSS
|
|
204
|
-
body{color:green}
|
|
205
|
-
CSS
|
|
206
|
-
assert_equal expected_style2, style_2.render_partial
|
|
207
|
-
|
|
208
|
-
assert_equal 'this file intentionally left blank', static_txt.render_partial
|
|
209
|
-
assert_equal "<p>in post</p>\n", post.render_partial
|
|
210
|
-
|
|
211
|
-
refute_raises(Sass::SyntaxError) { asset_style.render_partial }
|
|
212
|
-
expected = <<-SASS
|
|
213
|
-
SASS
|
|
214
|
-
|
|
215
|
-
assert_equal expected, asset_style.render_partial
|
|
216
|
-
expected = <<-JS
|
|
217
|
-
(function ($) {
|
|
218
|
-
$(document).ready(function () {
|
|
219
|
-
});
|
|
220
|
-
})(jQuery);
|
|
221
|
-
JS
|
|
222
|
-
assert_equal expected, asset_script.render_partial
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def test_save
|
|
226
|
-
static_bin.save
|
|
227
|
-
assert_equal static_bin.template_path.binread, static_bin.output_path.binread
|
|
228
|
-
|
|
229
|
-
static_txt.save
|
|
230
|
-
assert_equal static_txt.template_path.read, static_txt.output_path.read
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
def test_template_engine_options
|
|
234
|
-
refute asset_script.template_engine_options(:sass)[:line_comments]
|
|
235
|
-
assert_equal :compressed, asset_script.template_engine_options(:sass)[:style]
|
|
236
|
-
assert_equal({}, asset_script.template_engine_options(:js))
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
def test_template_types
|
|
240
|
-
assert_equal [:erb, :markdown], chained.template_types
|
|
241
|
-
assert_equal [:erb, :markdown], chain.template_types
|
|
242
|
-
assert_equal [:markdown], page.template_types
|
|
243
|
-
assert_equal [:sass], asset_style.template_types
|
|
244
|
-
assert_equal [], asset_script.template_types
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
def test_title
|
|
248
|
-
assert_equal 'Foo -> Bar -> Baz', page_nested.title
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
def test_to_s
|
|
252
|
-
assert_equal '#<Staticpress::Content::Category url_path=/category/programming, params={:name=>"programming", :number=>1}>', category.to_s
|
|
253
|
-
assert_equal '#<Staticpress::Content::Category url_path=/category/programming, params={:name=>"programming", :number=>1}>', Staticpress::Content::Category.new(:name => 'programming', :number => nil).to_s
|
|
254
|
-
|
|
255
|
-
assert_equal '#<Staticpress::Content::Index url_path=/, params={:number=>1}>', index.to_s
|
|
256
|
-
assert_equal '#<Staticpress::Content::Index url_path=/page/2, params={:number=>2}>', index_2.to_s
|
|
257
|
-
|
|
258
|
-
assert_equal '#<Staticpress::Content::Page url_path=/, params={:slug=>""}>', page_root.to_s
|
|
259
|
-
assert_equal '#<Staticpress::Content::Page url_path=/about, params={:slug=>"about"}>', page.to_s
|
|
260
|
-
assert_equal '#<Staticpress::Content::Page url_path=/ruby.png, params={:slug=>"ruby.png"}>', static_bin.to_s
|
|
261
|
-
|
|
262
|
-
assert_equal '#<Staticpress::Content::Post url_path=/2011/07/20/hello, params={:day=>"20", :month=>"07", :title=>"hello", :year=>"2011"}>', post.to_s
|
|
263
|
-
|
|
264
|
-
assert_equal '#<Staticpress::Content::Tag url_path=/tag/charlotte, params={:name=>"charlotte", :number=>1}>', tag.to_s
|
|
265
|
-
|
|
266
|
-
assert_equal '#<Staticpress::Content::Theme url_path=/assets/test_theme/styles/all, params={:asset_type=>"styles", :slug=>"all", :theme=>"test_theme"}>', asset_style.to_s
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
def test_url_path
|
|
270
|
-
assert_equal '/category/programming', category.url_path
|
|
271
|
-
assert_equal '/category/programming', category_1.url_path
|
|
272
|
-
assert_equal '/category/programming/page/2', category_2.url_path
|
|
273
|
-
|
|
274
|
-
assert_equal '/', index.url_path
|
|
275
|
-
assert_equal '/page/2', index_2.url_path
|
|
276
|
-
|
|
277
|
-
assert_equal '/', page_root.url_path
|
|
278
|
-
assert_equal '/chained', chained.url_path
|
|
279
|
-
assert_equal '/chain.html', chain.url_path
|
|
280
|
-
assert_equal '/about', page.url_path
|
|
281
|
-
assert_equal '/contact', second_page.url_path
|
|
282
|
-
assert_equal '/ruby.png', static_bin.url_path
|
|
283
|
-
assert_equal '/plain.txt', static_txt.url_path
|
|
284
|
-
|
|
285
|
-
assert_equal '/2011/07/20/hello', post.url_path
|
|
286
|
-
|
|
287
|
-
assert_equal '/2011/07/20/hello', post.url_path
|
|
288
|
-
assert_equal '/tag/charlotte', tag.url_path
|
|
289
|
-
assert_equal '/assets/test_theme/styles/all', asset_style.url_path
|
|
290
|
-
end
|
|
291
|
-
end
|