wysihtml5_with_ps 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Makefile +98 -0
- data/Rakefile +38 -0
- data/lib/base/base.js +139 -0
- data/lib/rangy/rangy-core.js +3211 -0
- data/lib/wysihtml5_with_ps/version.rb +3 -0
- data/test/assert/html_equal_test.js +32 -0
- data/test/browser_test.js +85 -0
- data/test/dom/auto_link_test.js +105 -0
- data/test/dom/contains_test.js +18 -0
- data/test/dom/convert_to_list_test.js +101 -0
- data/test/dom/copy_attributes_test.js +51 -0
- data/test/dom/copy_styles_test.js +110 -0
- data/test/dom/delegate_test.js +62 -0
- data/test/dom/get_as_dom_test.js +55 -0
- data/test/dom/get_parent_element_test.js +161 -0
- data/test/dom/get_style_test.js +54 -0
- data/test/dom/has_element_with_class_name_test.js +29 -0
- data/test/dom/has_element_with_tag_name_test.js +25 -0
- data/test/dom/insert_css_test.js +31 -0
- data/test/dom/observe_test.js +83 -0
- data/test/dom/parse_test.js +614 -0
- data/test/dom/rename_element_test.js +28 -0
- data/test/dom/resolve_list_test.js +46 -0
- data/test/dom/sandbox_test.js +184 -0
- data/test/dom/set_attributes_test.js +15 -0
- data/test/dom/set_styles_test.js +19 -0
- data/test/editor_test.js +547 -0
- data/test/incompatible_test.js +60 -0
- data/test/index.html +126 -0
- data/test/lang/array_test.js +22 -0
- data/test/lang/object_test.js +22 -0
- data/test/lang/string_test.js +19 -0
- data/test/quirks/clean_pasted_html_test.js +11 -0
- data/test/undo_manager_test.js +94 -0
- metadata +116 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
module("wysihtml5 - Incompatible", {
|
2
|
+
setup: function() {
|
3
|
+
this.originalSupportCheck = wysihtml5.browser.supported;
|
4
|
+
wysihtml5.browser.supported = function() { return false; };
|
5
|
+
|
6
|
+
this.textareaElement = document.createElement("textarea");
|
7
|
+
document.body.appendChild(this.textareaElement);
|
8
|
+
},
|
9
|
+
|
10
|
+
teardown: function() {
|
11
|
+
wysihtml5.browser.supported = this.originalSupportCheck;
|
12
|
+
this.textareaElement.parentNode.removeChild(this.textareaElement);
|
13
|
+
}
|
14
|
+
});
|
15
|
+
|
16
|
+
|
17
|
+
asyncTest("Basic test", function() {
|
18
|
+
expect(12);
|
19
|
+
|
20
|
+
var that = this;
|
21
|
+
|
22
|
+
var oldIframesLength = document.getElementsByTagName("iframe").length;
|
23
|
+
|
24
|
+
var oldInputsLength = document.getElementsByTagName("input").length;
|
25
|
+
|
26
|
+
var editor = new wysihtml5.Editor(this.textareaElement);
|
27
|
+
editor.observe("load", function() {
|
28
|
+
ok(true, "'load' event correctly triggered");
|
29
|
+
ok(!wysihtml5.dom.hasClass(document.body, "wysihtml5-supported"), "<body> didn't receive the 'wysihtml5-supported' class");
|
30
|
+
ok(!editor.isCompatible(), "isCompatible returns false when rich text editing is not correctly supported in the current browser");
|
31
|
+
equal(that.textareaElement.style.display, "", "Textarea is visible");
|
32
|
+
ok(!editor.composer, "Composer not initialized");
|
33
|
+
|
34
|
+
equal(document.getElementsByTagName("iframe").length, oldIframesLength, "No hidden field has been inserted into the dom");
|
35
|
+
equal(document.getElementsByTagName("input").length, oldInputsLength, "Composer not initialized");
|
36
|
+
|
37
|
+
var html = "foobar<br>";
|
38
|
+
editor.setValue(html);
|
39
|
+
equal(that.textareaElement.value, html);
|
40
|
+
equal(editor.getValue(), html);
|
41
|
+
editor.clear();
|
42
|
+
equal(that.textareaElement.value, "");
|
43
|
+
|
44
|
+
editor.observe("focus", function() {
|
45
|
+
ok(true, "Generic 'focus' event fired");
|
46
|
+
});
|
47
|
+
|
48
|
+
editor.observe("focus:textarea", function() {
|
49
|
+
ok(true, "Specific 'focus:textarea' event fired");
|
50
|
+
});
|
51
|
+
|
52
|
+
editor.observe("focus:composer", function() {
|
53
|
+
ok(false, "Specific 'focus:composer' event fired, and that's wrong, there shouldn't be a composer element/view");
|
54
|
+
});
|
55
|
+
|
56
|
+
QUnit.triggerEvent(that.textareaElement, wysihtml5.browser.supportsEvent("focusin") ? "focusin" : "focus");
|
57
|
+
|
58
|
+
start();
|
59
|
+
});
|
60
|
+
});
|
data/test/index.html
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
4
|
+
<meta charset="utf-8">
|
5
|
+
|
6
|
+
<title>wysihtml5 - Test Suite</title>
|
7
|
+
|
8
|
+
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css">
|
9
|
+
|
10
|
+
<script src="http://code.jquery.com/qunit/qunit-git.js"></script>
|
11
|
+
|
12
|
+
<script src="../src/wysihtml5.js"></script>
|
13
|
+
<script src="../lib/rangy/rangy-core.js"></script>
|
14
|
+
<script src="../lib/base/base.js"></script>
|
15
|
+
<script src="../src/browser.js"></script>
|
16
|
+
<script src="../src/lang/array.js"></script>
|
17
|
+
<script src="../src/lang/dispatcher.js"></script>
|
18
|
+
<script src="../src/lang/object.js"></script>
|
19
|
+
<script src="../src/lang/string.js"></script>
|
20
|
+
<script src="../src/dom/auto_link.js"></script>
|
21
|
+
<script src="../src/dom/class.js"></script>
|
22
|
+
<script src="../src/dom/contains.js"></script>
|
23
|
+
<script src="../src/dom/convert_to_list.js"></script>
|
24
|
+
<script src="../src/dom/copy_attributes.js"></script>
|
25
|
+
<script src="../src/dom/copy_styles.js"></script>
|
26
|
+
<script src="../src/dom/delegate.js"></script>
|
27
|
+
<script src="../src/dom/get_as_dom.js"></script>
|
28
|
+
<script src="../src/dom/get_parent_element.js"></script>
|
29
|
+
<script src="../src/dom/get_style.js"></script>
|
30
|
+
<script src="../src/dom/has_element_with_tag_name.js"></script>
|
31
|
+
<script src="../src/dom/has_element_with_class_name.js"></script>
|
32
|
+
<script src="../src/dom/insert.js"></script>
|
33
|
+
<script src="../src/dom/insert_css.js"></script>
|
34
|
+
<script src="../src/dom/observe.js"></script>
|
35
|
+
<script src="../src/dom/parse.js"></script>
|
36
|
+
<script src="../src/dom/remove_empty_text_nodes.js"></script>
|
37
|
+
<script src="../src/dom/rename_element.js"></script>
|
38
|
+
<script src="../src/dom/replace_with_child_nodes.js"></script>
|
39
|
+
<script src="../src/dom/resolve_list.js"></script>
|
40
|
+
<script src="../src/dom/sandbox.js"></script>
|
41
|
+
<script src="../src/dom/set_attributes.js"></script>
|
42
|
+
<script src="../src/dom/set_styles.js"></script>
|
43
|
+
<script src="../src/dom/simulate_placeholder.js"></script>
|
44
|
+
<script src="../src/dom/text_content.js"></script>
|
45
|
+
<script src="../src/quirks/clean_pasted_html.js"></script>
|
46
|
+
<script src="../src/quirks/ensure_proper_clearing.js"></script>
|
47
|
+
<script src="../src/quirks/get_correct_inner_html.js"></script>
|
48
|
+
<script src="../src/quirks/insert_line_break_on_return.js"></script>
|
49
|
+
<script src="../src/quirks/redraw.js"></script>
|
50
|
+
<script src="../src/selection/selection.js"></script>
|
51
|
+
<script src="../src/selection/html_applier.js"></script>
|
52
|
+
<script src="../src/commands.js"></script>
|
53
|
+
<script src="../src/commands/bold.js"></script>
|
54
|
+
<script src="../src/commands/createLink.js"></script>
|
55
|
+
<script src="../src/commands/fontSize.js"></script>
|
56
|
+
<script src="../src/commands/foreColor.js"></script>
|
57
|
+
<script src="../src/commands/formatBlock.js"></script>
|
58
|
+
<script src="../src/commands/formatInline.js"></script>
|
59
|
+
<script src="../src/commands/insertHTML.js"></script>
|
60
|
+
<script src="../src/commands/insertImage.js"></script>
|
61
|
+
<script src="../src/commands/insertLineBreak.js"></script>
|
62
|
+
<script src="../src/commands/insertOrderedList.js"></script>
|
63
|
+
<script src="../src/commands/insertUnorderedList.js"></script>
|
64
|
+
<script src="../src/commands/italic.js"></script>
|
65
|
+
<script src="../src/commands/justifyCenter.js"></script>
|
66
|
+
<script src="../src/commands/justifyLeft.js"></script>
|
67
|
+
<script src="../src/commands/justifyRight.js"></script>
|
68
|
+
<script src="../src/commands/justifyFull.js"></script>
|
69
|
+
<script src="../src/commands/redo.js"></script>
|
70
|
+
<script src="../src/commands/underline.js"></script>
|
71
|
+
<script src="../src/commands/undo.js"></script>
|
72
|
+
<script src="../src/undo_manager.js"></script>
|
73
|
+
<script src="../src/views/view.js"></script>
|
74
|
+
<script src="../src/views/composer.js"></script>
|
75
|
+
<script src="../src/views/composer.style.js"></script>
|
76
|
+
<script src="../src/views/composer.observe.js"></script>
|
77
|
+
<script src="../src/views/synchronizer.js"></script>
|
78
|
+
<script src="../src/views/textarea.js"></script>
|
79
|
+
<script src="../src/toolbar/dialog.js"></script>
|
80
|
+
<script src="../src/toolbar/speech.js"></script>
|
81
|
+
<script src="../src/toolbar/toolbar.js"></script>
|
82
|
+
<script src="../src/editor.js"></script>
|
83
|
+
|
84
|
+
<script src="../src/assert/html_equal.js"></script>
|
85
|
+
|
86
|
+
<script src="browser_test.js"></script>
|
87
|
+
<script src="incompatible_test.js"></script>
|
88
|
+
|
89
|
+
<script>
|
90
|
+
if (wysihtml5.browser.supported()) {
|
91
|
+
document.write(
|
92
|
+
'<script src="assert/html_equal_test.js"><\/script>' +
|
93
|
+
'<script src="lang/array_test.js"><\/script>' +
|
94
|
+
'<script src="lang/object_test.js"><\/script>' +
|
95
|
+
'<script src="lang/string_test.js"><\/script>' +
|
96
|
+
'<script src="dom/auto_link_test.js"><\/script>' +
|
97
|
+
'<script src="dom/contains_test.js"><\/script>' +
|
98
|
+
'<script src="dom/convert_to_list_test.js"><\/script>' +
|
99
|
+
'<script src="dom/copy_styles_test.js"><\/script>' +
|
100
|
+
'<script src="dom/copy_attributes_test.js"><\/script>' +
|
101
|
+
'<script src="dom/delegate_test.js"><\/script>' +
|
102
|
+
'<script src="dom/sandbox_test.js"><\/script>' +
|
103
|
+
'<script src="dom/observe_test.js"><\/script>' +
|
104
|
+
'<script src="dom/get_as_dom_test.js"><\/script>' +
|
105
|
+
'<script src="dom/get_parent_element_test.js"><\/script>' +
|
106
|
+
'<script src="dom/get_style_test.js"><\/script>' +
|
107
|
+
'<script src="dom/has_element_with_tag_name_test.js"><\/script>' +
|
108
|
+
'<script src="dom/has_element_with_class_name_test.js"><\/script>' +
|
109
|
+
'<script src="dom/insert_css_test.js"><\/script>' +
|
110
|
+
'<script src="dom/resolve_list_test.js"><\/script>' +
|
111
|
+
'<script src="dom/rename_element_test.js"><\/script>' +
|
112
|
+
'<script src="dom/set_styles_test.js"><\/script>' +
|
113
|
+
'<script src="dom/set_attributes_test.js"><\/script>' +
|
114
|
+
'<script src="dom/parse_test.js"><\/script>' +
|
115
|
+
'<script src="quirks/clean_pasted_html_test.js"><\/script>' +
|
116
|
+
'<script src="undo_manager_test.js"><\/script>' +
|
117
|
+
'<script src="editor_test.js"><\/script>'
|
118
|
+
);
|
119
|
+
}
|
120
|
+
</script>
|
121
|
+
|
122
|
+
<h1 id="qunit-header">wysihtml5 - Test Suite</h1>
|
123
|
+
<h2 id="qunit-banner"></h2>
|
124
|
+
<div id="qunit-testrunner-toolbar"></div>
|
125
|
+
<h2 id="qunit-userAgent"></h2>
|
126
|
+
<ol id="qunit-tests"></ol>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module("wysihtml5.lang.array");
|
2
|
+
|
3
|
+
test("contains()", function() {
|
4
|
+
var arr = [1, "2", "foo"];
|
5
|
+
ok(wysihtml5.lang.array(arr).contains(1));
|
6
|
+
ok(!wysihtml5.lang.array(arr).contains(2));
|
7
|
+
ok(wysihtml5.lang.array(arr).contains("2"));
|
8
|
+
ok(wysihtml5.lang.array(arr).contains("foo"));
|
9
|
+
});
|
10
|
+
|
11
|
+
test("without()", function() {
|
12
|
+
var arr = [1, 2, 3];
|
13
|
+
deepEqual(wysihtml5.lang.array(arr).without([1]), [2, 3]);
|
14
|
+
deepEqual(wysihtml5.lang.array(arr).without([4]), [1, 2, 3]);
|
15
|
+
});
|
16
|
+
|
17
|
+
test("get()", function() {
|
18
|
+
var nodeList = document.getElementsByTagName("*"),
|
19
|
+
arr = wysihtml5.lang.array(nodeList).get();
|
20
|
+
equal(arr.length, nodeList.length);
|
21
|
+
ok(arr instanceof Array);
|
22
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module("wysihtml5.lang.object");
|
2
|
+
|
3
|
+
test("merge()", function() {
|
4
|
+
var obj = { foo: 1, bar: 1 },
|
5
|
+
returnValue = wysihtml5.lang.object(obj).merge({ bar: 2, baz: 3 }).get();
|
6
|
+
equal(returnValue, obj);
|
7
|
+
deepEqual(obj, { foo: 1, bar: 2, baz: 3 });
|
8
|
+
});
|
9
|
+
|
10
|
+
test("clone()", function() {
|
11
|
+
var obj = { foo: true },
|
12
|
+
returnValue = wysihtml5.lang.object(obj).clone();
|
13
|
+
ok(obj != returnValue);
|
14
|
+
deepEqual(obj, returnValue);
|
15
|
+
});
|
16
|
+
|
17
|
+
test("isArray()", function() {
|
18
|
+
ok(wysihtml5.lang.object([]).isArray());
|
19
|
+
ok(!wysihtml5.lang.object({}).isArray());
|
20
|
+
ok(!wysihtml5.lang.object(document.body.childNodes).isArray());
|
21
|
+
ok(!wysihtml5.lang.object("1,2,3").isArray());
|
22
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module("wysihtml5.lang.string");
|
2
|
+
|
3
|
+
test("trim()", function() {
|
4
|
+
equal(wysihtml5.lang.string(" foo \n").trim(), "foo");
|
5
|
+
});
|
6
|
+
|
7
|
+
test("interpolate()", function() {
|
8
|
+
equal(
|
9
|
+
wysihtml5.lang.string("Hello #{name}, I LOVE YOUR NAME. IT'S VERY GERMAN AND SOUNDS STRONG.").interpolate({ name: "Reinhold" }),
|
10
|
+
"Hello Reinhold, I LOVE YOUR NAME. IT'S VERY GERMAN AND SOUNDS STRONG."
|
11
|
+
);
|
12
|
+
});
|
13
|
+
|
14
|
+
test("replace()", function() {
|
15
|
+
equal(
|
16
|
+
wysihtml5.lang.string("I LOVE CAKE").replace("CAKE").by("BOOBS"),
|
17
|
+
"I LOVE BOOBS"
|
18
|
+
);
|
19
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
if (wysihtml5.browser.supported()) {
|
2
|
+
module("wysihtml5.quirks.cleanPastedHTML");
|
3
|
+
|
4
|
+
test("Basic test", function() {
|
5
|
+
wysihtml5.assert.htmlEqual(
|
6
|
+
wysihtml5.quirks.cleanPastedHTML("<u>See: </u><a href=\"http://www.google.com\"><u><b>best search engine</b></u></a>"),
|
7
|
+
"<u>See: </u><a href=\"http://www.google.com\"><b>best search engine</b></a>",
|
8
|
+
"Correctly removed <u> within <a>"
|
9
|
+
);
|
10
|
+
});
|
11
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
if (wysihtml5.browser.supportsCommand(document, "insertHTML")) {
|
2
|
+
|
3
|
+
module("wysihtml5.UndoManager", {
|
4
|
+
setup: function() {
|
5
|
+
this.textareaElement = document.createElement("textarea");
|
6
|
+
this.textareaElement.value = "1";
|
7
|
+
|
8
|
+
document.body.appendChild(this.textareaElement);
|
9
|
+
},
|
10
|
+
|
11
|
+
teardown: function() {
|
12
|
+
var leftover;
|
13
|
+
while (leftover = document.querySelector("iframe.wysihtml5-sandbox, input[name='_wysihtml5_mode']")) {
|
14
|
+
leftover.parentNode.removeChild(leftover);
|
15
|
+
}
|
16
|
+
document.body.removeChild(this.textareaElement);
|
17
|
+
},
|
18
|
+
|
19
|
+
triggerUndo: function(editor) {
|
20
|
+
this.triggerKey(editor, 90);
|
21
|
+
},
|
22
|
+
|
23
|
+
triggerRedo: function(editor) {
|
24
|
+
this.triggerKey(editor, 89);
|
25
|
+
},
|
26
|
+
|
27
|
+
triggerKey: function(editor, keyCode) {
|
28
|
+
var event;
|
29
|
+
try {
|
30
|
+
event = editor.composer.sandbox.getDocument().createEvent("KeyEvents");
|
31
|
+
event.initKeyEvent("keydown", true, true, editor.composer.sandbox.getWindow(), true, false, false, false, keyCode, keyCode);
|
32
|
+
} catch(e) {
|
33
|
+
event = editor.composer.sandbox.getDocument().createEvent("Events");
|
34
|
+
event.initEvent("keydown", true, true);
|
35
|
+
event.ctrlKey = true;
|
36
|
+
event.keyCode = keyCode;
|
37
|
+
}
|
38
|
+
editor.composer.element.dispatchEvent(event);
|
39
|
+
}
|
40
|
+
});
|
41
|
+
|
42
|
+
|
43
|
+
asyncTest("Basic test", function() {
|
44
|
+
expect(5);
|
45
|
+
|
46
|
+
var that = this,
|
47
|
+
editor = new wysihtml5.Editor(this.textareaElement);
|
48
|
+
editor.on("load", function() {
|
49
|
+
editor.setValue("1 2").fire("newword:composer");
|
50
|
+
editor.setValue("1 2 3").fire("newword:composer");
|
51
|
+
editor.setValue("1 2 3 4").fire("newword:composer");
|
52
|
+
editor.setValue("1 2 3 4 5");
|
53
|
+
|
54
|
+
that.triggerUndo(editor);
|
55
|
+
equal(editor.getValue(), "1 2 3 4");
|
56
|
+
that.triggerRedo(editor);
|
57
|
+
that.triggerRedo(editor);
|
58
|
+
equal(editor.getValue(), "1 2 3 4 5");
|
59
|
+
that.triggerUndo(editor);
|
60
|
+
that.triggerUndo(editor);
|
61
|
+
equal(editor.getValue(), "1 2 3");
|
62
|
+
that.triggerUndo(editor);
|
63
|
+
that.triggerUndo(editor);
|
64
|
+
equal(editor.getValue(), "1");
|
65
|
+
that.triggerUndo(editor);
|
66
|
+
that.triggerUndo(editor);
|
67
|
+
equal(editor.getValue(), "1");
|
68
|
+
|
69
|
+
start();
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
73
|
+
|
74
|
+
asyncTest("Test commands", function() {
|
75
|
+
expect(3);
|
76
|
+
|
77
|
+
var that = this,
|
78
|
+
editor = new wysihtml5.Editor(this.textareaElement);
|
79
|
+
editor.on("load", function() {
|
80
|
+
editor.setValue("<b>1</b>").fire("beforecommand:composer");
|
81
|
+
editor.setValue("<i><b>1</b></i>").fire("beforecommand:composer");
|
82
|
+
|
83
|
+
that.triggerUndo(editor);
|
84
|
+
equal(editor.getValue(), "<b>1</b>");
|
85
|
+
that.triggerRedo(editor);
|
86
|
+
equal(editor.getValue(), "<i><b>1</b></i>");
|
87
|
+
that.triggerUndo(editor);
|
88
|
+
that.triggerUndo(editor);
|
89
|
+
equal(editor.getValue(), "1");
|
90
|
+
|
91
|
+
start();
|
92
|
+
});
|
93
|
+
});
|
94
|
+
}
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wysihtml5_with_ps
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Swami Atma
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-18 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Temporary clone of wysihtml5. I need a published version supporting p
|
15
|
+
tags to include in my gem so I'll use this until wysihtml5 0.4 is published.
|
16
|
+
email:
|
17
|
+
- swami@TenThousandHours.eu
|
18
|
+
executables: []
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- lib/base/base.js
|
23
|
+
- lib/rangy/rangy-core.js
|
24
|
+
- lib/wysihtml5_with_ps/version.rb
|
25
|
+
- Rakefile
|
26
|
+
- Makefile
|
27
|
+
- test/assert/html_equal_test.js
|
28
|
+
- test/browser_test.js
|
29
|
+
- test/dom/auto_link_test.js
|
30
|
+
- test/dom/contains_test.js
|
31
|
+
- test/dom/convert_to_list_test.js
|
32
|
+
- test/dom/copy_attributes_test.js
|
33
|
+
- test/dom/copy_styles_test.js
|
34
|
+
- test/dom/delegate_test.js
|
35
|
+
- test/dom/get_as_dom_test.js
|
36
|
+
- test/dom/get_parent_element_test.js
|
37
|
+
- test/dom/get_style_test.js
|
38
|
+
- test/dom/has_element_with_class_name_test.js
|
39
|
+
- test/dom/has_element_with_tag_name_test.js
|
40
|
+
- test/dom/insert_css_test.js
|
41
|
+
- test/dom/observe_test.js
|
42
|
+
- test/dom/parse_test.js
|
43
|
+
- test/dom/rename_element_test.js
|
44
|
+
- test/dom/resolve_list_test.js
|
45
|
+
- test/dom/sandbox_test.js
|
46
|
+
- test/dom/set_attributes_test.js
|
47
|
+
- test/dom/set_styles_test.js
|
48
|
+
- test/editor_test.js
|
49
|
+
- test/incompatible_test.js
|
50
|
+
- test/index.html
|
51
|
+
- test/lang/array_test.js
|
52
|
+
- test/lang/object_test.js
|
53
|
+
- test/lang/string_test.js
|
54
|
+
- test/quirks/clean_pasted_html_test.js
|
55
|
+
- test/undo_manager_test.js
|
56
|
+
homepage: https://github.com/allesklar/wysihtml5_with_ps
|
57
|
+
licenses: []
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
hash: -2162486776215135411
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
hash: -2162486776215135411
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 1.8.23
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: Temporary clone of wysihtml5. I need a published version supporting p tags
|
86
|
+
to include in my gem so I'll use this until wysihtml5 0.4 is published.
|
87
|
+
test_files:
|
88
|
+
- test/assert/html_equal_test.js
|
89
|
+
- test/browser_test.js
|
90
|
+
- test/dom/auto_link_test.js
|
91
|
+
- test/dom/contains_test.js
|
92
|
+
- test/dom/convert_to_list_test.js
|
93
|
+
- test/dom/copy_attributes_test.js
|
94
|
+
- test/dom/copy_styles_test.js
|
95
|
+
- test/dom/delegate_test.js
|
96
|
+
- test/dom/get_as_dom_test.js
|
97
|
+
- test/dom/get_parent_element_test.js
|
98
|
+
- test/dom/get_style_test.js
|
99
|
+
- test/dom/has_element_with_class_name_test.js
|
100
|
+
- test/dom/has_element_with_tag_name_test.js
|
101
|
+
- test/dom/insert_css_test.js
|
102
|
+
- test/dom/observe_test.js
|
103
|
+
- test/dom/parse_test.js
|
104
|
+
- test/dom/rename_element_test.js
|
105
|
+
- test/dom/resolve_list_test.js
|
106
|
+
- test/dom/sandbox_test.js
|
107
|
+
- test/dom/set_attributes_test.js
|
108
|
+
- test/dom/set_styles_test.js
|
109
|
+
- test/editor_test.js
|
110
|
+
- test/incompatible_test.js
|
111
|
+
- test/index.html
|
112
|
+
- test/lang/array_test.js
|
113
|
+
- test/lang/object_test.js
|
114
|
+
- test/lang/string_test.js
|
115
|
+
- test/quirks/clean_pasted_html_test.js
|
116
|
+
- test/undo_manager_test.js
|