Skip to content

Commit

Permalink
Squashed 'libs/editor/' changes from aec6410..77cb2fb
Browse files Browse the repository at this point in the history
77cb2fb Merge pull request #162 from wordpress-mobile/issue/19-integrate-editor-wpandroid
39ea8ca Updated target sdk and support libraries to 22
50437ce Gradle version bump
a756e1f Merge branch 'develop' into issue/19-integrate-editor-wpandroid
5c9e419 Merge pull request #153 from wordpress-mobile/issue/127-blockquote-fixes
e3a2560 Switched editor layout from LinearLayout to RelativeLayout
e6f7bb3 Added debug logging for callback-response-string in JsCallbackReceiver
f1cf184 Added callback-response-string callback check to JsCallbackReceiverTest
3a1a158 Merge branch 'develop' into issue/19-integrate-editor-wpandroid
c6af228 Removed duplicate drawables (added by mistake in earlier merge from main WPAndroid project)
ff78748 Print a debug log whenever getTitle() and getContent() are called from the UI thread
6692740 Updated EditorFragment.getTitle() and getContent() to never return null
aed719f Added Android Studio's captures/ folder to .gitignore
34854be Merge pull request #154 from wordpress-mobile/issue/122-scroll-fixes
855d545 Changed new editor frag layout to linear
f31b6c2 Updated getAncestorElementForSettingBlockquote...
6bcf90a Fixed an issue where empty field contents would be turned into a 'null' literal string
4102f09 Fixed issue where CountDownLatches weren't always being called in EditorFragment.onGetHtmlResponse()
f6091bc Added a toggle for action bar auto-hiding inside onConfigurationChanged for EditorFragment
c17b0e0 Implemented getTitle() and getContent() for EditorFragment
ca18067 Added support for retrieving the contents of the title and content fields from JavaScript
d2bf496 Changed Utils.buildMapFromKeyValuePairs() to only treat the first = as a delimiter
bf0f787 Added missing backslash in strings.xml
3f975f8 Merge branch 'develop' into issue/19-integrate-editor-wpandroid
38effc2 Fixed NPE caused by missing null check in Utils.escapeHtml()
c6ec3aa Extracted test content loading code from EditorFragment to MainExampleActivity
56306f4 Selected JS ports from iOS
60f0509 Merge branch 'develop' of github.com:wordpress-mobile/WordPress-Editor-Android into issue/127-blockquote-fixes
db547f6 Merge pull request #147 from wordpress-mobile/issue/130-landscape-viewport
6d80fbc Removed integration test exclusion from build.gradle
a335a99 Updated README to reflect new test setup
35fab19 Moved integration tests to /src/androidTest/
f493649 Merge pull request #146 from maxme/issue/fix-travis-build
a2a64f1 move tests from WordPressEditor/src/androidTest to WordPressEditor/src/test and remove unused DrawerLayoutImpl.file
2b1c6a1 fix compile issue by updating robolectric gradle plugin to 1.1.0
9ede8d9 SDK package refinements for travis.
c502e01 travis.yml tweaks
98e8e7b Updated ANDROID_HOME path in travis.yml
562d444 Switched to older style travis setup
ec31e41 Updated rangy to 1.3
873abaa Updated EditorFragment to only hide the action bar on landscape mode
6b92d5c Added a workaround to fix Travis failing for MockEditorActivity
0fce2f9 Changed MockEditorActivity to extend ActionBarActivity
41965b8 Merge branch 'develop' into issue/130-landscape-viewport
567abd0 Handled hiding and showing the action bar when the keyboard is shown and hidden (respectively)
ac66521 Hide the action bar in the editor fragment
46586df Merge pull request #143 from wordpress-mobile/issue/128-integration-tests
1b253ba Merge pull request #141 from wordpress-mobile/issue/139-tablet-padding
52e8fbb Updated the README with information on integration tests
05c09d2 Added checks for all buttons states to testFormatBarToggledOnSelectedFieldChanged()
7a73e7c Added a test class for the ZSSEditor
c6ef596 Renamed tests manifest entry for MockEditorActivity
d39585a Added some integration tests for EditorFragment
c3ea838 Added an EditorFragmentForTests class, overriding certain EditorFragment methods for more testing support
0dbbd5f Added a mock EditorActivity to attach an EditorFragment to for testing
88a202d Renamed JsCallbackHandlerTest to JsCallbackReceiverTest to match the class being tested
0a5dd94 Modified gradle build file to support integration tests
06c24ff Added extra padding between format bar buttons on screens over 800dp wide
8f88f67 Moved tablet padding rules to a separate css file
f24d87d Merge branch 'develop' into issue/139-tablet-padding
e40225a Removed duplicate import
f820758 Merge commit '40e798bf739c94adbc7aa9156ded0a5ad28dc462' into develop
1bba03f update to wputils 1.6.0
2d2bd8e Update wpeditor
ec1855d Increased editor side padding for tablets
40e798b Merge pull request #140 from wordpress-mobile/issue/18-format-bar-tablet
904cf27 Use a placeholder image when thumbnail can't be decoded
d3bd3f8 Removing potential race condition with WP image loading threads.
db80eef WP library images and local images working.
f7bbaab Local images are maintained after fragment is re-created.
a0e0615 Returning to the post editor won't crash if Activity was destroyed.
2fe6c3f Merge branch 'develop' into issue/18-format-bar-tablet
8a1bf41 Merge pull request #138 from wordpress-mobile/issue/124-separate-files
559b7d8 Style updates.
9b89d36 Added support for strikethrough tag in EditorFragment
efcde28 Added editor layout for tablets (sw600dp)
5e59531 Added selector for strikethrough button
3bf29a2 Added bigger HTML button drawables for tablet format bar
9239f92 Removed a lot of inline JS/CSS from the main editor html file.
64b83d3 Merge pull request #136 from wordpress-mobile/issue/132-formatbar-keyboard-old-api
2d7c9c4 Moved some WebView config code from EditorFragment to EditorWebViewAbstract
c5882ba Merge remote-tracking branch 'remotes/origin/develop' into issue/132-formatbar-keyboard-old-api
0699bb6 Suppressed NewApi lint check for EditorWebView.execJavaScriptFromString
8d5b424 Added compatibility WebView for API<19 with custom method for executing JS
4478cf3 Merge pull request #133 from wordpress-mobile/issue/10-format-bar-phone
ba3c137 Pulled the EditorWebView layout element into a separate file
b4a21f4 Modified EditorWebView to use WebView.evaluateJavascript on API>=19
ef8b078 Added EditorWebViewAbstract and replaced EditorWebView usage in EditorFragment
50524b9 Moved the format bar's left margin inside the scrollview
0d2a713 Shrank HTML button and tightened its margins
baa00c8 Removed unnecessary HTML button code
f144a88 Linked up format bar buttons to ZSSEditor methods
570ae57 Added unit test for Utils.buildMapFromKeyValuePairs
bbba60a Added partial support for the callback-selection-changed JS callback
bb8c537 Added format bar buttons and dividers to editor layout
6e340ac Renamed format button highlighted underline dimens
315bb50 Relabeled legacy editor color assets
14c3938 Added new format bar icons and selectors
8303e45 Renamed legacy editor button selectors and images
6195fe0 Merge pull request #129 from wordpress-mobile/issue/23-extract-callback-handler
228a563 Qualified Utils static imports in UtilsTest
418d4b3 Some EditorFragment cleanup
db3bd70 Added units tests for Utils
53821d7 Added units tests for JsCallbackHandler
862e533 Added some callback placeholders to JsCallbackReceiver with logging
b746221 Renamed callback classes for clarity
bedf027 Merge branch 'develop' into issue/23-extract-callback-handler
eaa2f17 Merge pull request #21 from wordpress-mobile/feature/test-framework
5346958 Added a lint rule ignoring the 'InvalidPackage' check for Robolectric
83c3108 Added notes and logging for some currently unused JS callbacks
4c2f2d1 Downgrading plugin, tests aren't working with the new tools.
17ec76c Updating robolectric-gradle-plugin and the Android gradle build plugin.
201f7e7 Merge branch 'develop' into feature/test-framework
abcf3e3 Moved some utility methods from EditorFragment to Utils
7f336ea Added a WebView sublcass, EditorWebView, and switched the editor to use that
b7be242 Added handling for the "callback-selection-style" JS callback
e9c6401 Updated onDomLoaded() to enable multiline support for the content field
f1f933b Moved JsCallbackHandler to its own file
5da8d79 Added example format bar with bold button
ea71291 Fix #2406 - Load media file in the background
fc5f50d Merge pull request #22 from wordpress-mobile/feature/14-main-editor
3666662 Cleaned up EditorFragment
9645409 Changed project license from MIT to GPLv2
cfa2fe4 Fixed issue with JavaScript not loading on API<19
32591e0 Switched WebChromeClient onConsoleMessage to use debug log messages instead of error
10b5506 Updated to use build tools 21.1.2
54d20a7 Added title to editor example content
124981c Added travis build status to README
200efb8 Adding Robolectric test framework and JaCoCo code coverage reports.
ef0e582 README cleanup
d16a6d5 Set default activity for example application
23fd043 Updated README with build instructions for Windows (fixes assets symlink)
87c8911 Added @SuppressLint for web debugging
a5e31e8 Changed WordPress-Utils-Android dependency to maven artifact
88f29c5 JS to Java callback proof of concept
d2aa4f3 Updated ZSSRichTextEditor to latest version
ced12ea Auto-load an example HTML file in editor
dd66e62 Updated common editor files and imported editor HTML file from iOS
efa02b7 fix gallery placeholder icon
a6b5ecf Tapping a media gallery span opens gallery editor.
912f81a Adding missing override annotation.
58c9ae7 Using isVideo to determine if a file is a video.
1721d30 enable gallery handling
3ca1d97 remove unused code
9c806b5 first step at introducing the new media picker
94e0f77 rename and update editor colors
1b3b384 Merge branch 'develop' into feature/modularize-editor
f6ef4ce fix local draft style saving by introducing an awful "getSpannedContent()" method :(
8f9d5e4 EditLinkActivity is now independent from the EditPostActivity
1d7067e add local draft / remote post example
d33a9be make the legacy editor works in the example project
6f0d297 LegacyEditorFragment now lives in the editor subproject
777635b split MediaUtils in MediaUtils and WordPressMediaUtils - remove references to WordPress.java in MediaUtils
0c60b07 move WPUnderlineSpan.java and MediaGalleryImageSpan.java to WPUtils
11e6f7f use setFeaturedImageSupported instead of using WordPress.getCurrentBlog().isFeaturedImageCapable()
fb3a66d appendMediaFile now able to load local media
068e0df reenable appendMedia in LegacyEditorFragment
d847975 split methods to be usable on MediaFile instead of WPImageSpan
8978cb1 move WPEditImageSpan bitmap loading to the constructor
8141509 move WPImageSpan and MediaFile to WPUtils - also create a WPEditImageSpan class
839f755 first step to remove getContentEditText/getTitleEditText

git-subtree-dir: libs/editor
git-subtree-split: 77cb2fb13d1df4e392670f763bcb12d57d2fe851
  • Loading branch information
aforcier committed Jun 15, 2015
1 parent aacdb40 commit 9eaf958
Show file tree
Hide file tree
Showing 227 changed files with 6,353 additions and 477 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ bin/
gen/
build/
*/build/
captures/

# Local configuration file (sdk path, etc)
local.properties
Expand Down Expand Up @@ -46,3 +47,6 @@ WordPress/src/main/res/values/com_crashlytics_export_strings.xml

# Monkey runner settings
*.pyc

# libs
libs/utils
8 changes: 5 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ jdk: oraclejdk7

android:
components:
- build-tools-21.1.1
- android-19
- extra-android-m2repository
- extra-android-support
- build-tools-22.0.1
- android-22

env:
global:
Expand All @@ -13,4 +15,4 @@ env:
- ANDROID_TARGET=android-14

script:
- ./gradlew -PdisablePreDex build
- ./gradlew build
21 changes: 0 additions & 21 deletions LICENSE-MIT

This file was deleted.

264 changes: 264 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
The GNU General Public License, Version 2, June 1991 (GPLv2)
============================================================

> Copyright (C) 1989, 1991 Free Software Foundation, Inc.
> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.


Preamble
--------

The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to most
of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software is
covered by the GNU Library General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish),
that you receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs; and that you know you can
do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a
fee, you must give the recipients all the rights that you have. You must make
sure that they, too, receive or can get the source code. And you must show them
these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer
you this license which gives you legal permission to copy, distribute and/or
modify the software.

Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced by
others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish
to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's free
use or not licensed at all.

The precise terms and conditions for copying, distribution and modification
follow.


Terms And Conditions For Copying, Distribution And Modification
---------------------------------------------------------------

**0.** This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms of
this General Public License. The "Program", below, refers to any such program or
work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is included without
limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is not
restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by
running the Program). Whether that is true depends on what the Program does.

**1.** You may copy and distribute verbatim copies of the Program's source code
as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the Program
a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at
your option offer warranty protection in exchange for a fee.

**2.** You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you also
meet all of these conditions:

* **a)** You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change.

* **b)** You must cause any work that you distribute or publish, that in whole
or in part contains or is derived from the Program or any part thereof, to
be licensed as a whole at no charge to all third parties under the terms of
this License.

* **c)** If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use in the
most ordinary way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute
the program under these conditions, and telling the user how to view a copy
of this License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on the Program is
not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the entire whole,
and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on the
Program.

In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this
License.

**3.** You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1 and 2
above provided that you also do one of the following:

* **a)** Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,

* **b)** Accompany it with a written offer, valid for at least three years, to
give any third party, for a charge no more than your cost of physically
performing source distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,

* **c)** Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the program in object
code or executable form with such an offer, in accord with Subsection b
above.)

The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all the
source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code distributed
need not include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component itself
accompanies the executable.

If distribution of executable or object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the source code
from the same place counts as distribution of the source code, even though third
parties are not compelled to copy the source along with the object code.

**4.** You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.

**5.** You are not required to accept this License, since you have not signed
it. However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you do
not accept this License. Therefore, by modifying or distributing the Program (or
any work based on the Program), you indicate your acceptance of this License to
do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

**6.** Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these terms and
conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties to this License.

**7.** If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Program at all.
For example, if a patent license would not permit royalty-free redistribution of
the Program by all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License would be to refrain
entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and the
section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose that
choice.

This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.

**8.** If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.

**9.** The Free Software Foundation may publish revised and/or new versions of
the General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new
problems or concerns.

Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or of any later version published by the Free Software Foundation. If the
Program does not specify a version number of this License, you may choose any
version ever published by the Free Software Foundation.

**10.** If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of
all derivatives of our free software and of promoting the sharing and reuse of
software generally.


No Warranty
-----------

**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
40 changes: 35 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,39 @@
# WordPress-Android-Editor
# WordPress-Editor-Android #

## Introduction
[![Build Status](https://travis-ci.org/wordpress-mobile/WordPress-Editor-Android.svg?branch=develop)](https://travis-ci.org/wordpress-mobile/WordPress-Editor-Android)

The WordPress-Android-Editor is the text editor used in the [WordPress Android app](https://github.com/wordpress-mobile/WordPress-Android) to create and edit pages & posts. In short it's a simple, straightforward way to visually edit HTML.
## Introduction ##

## LICENSE
WordPress-Editor-Android is the text editor used in the [WordPress Android app](https://github.com/wordpress-mobile/WordPress-Android) to create and edit pages & posts. In short it's a simple, straightforward way to visually edit HTML.

This library is licensed under[MIT](LICENSE-MIT)
## Build Instructions ##

Post-checkout instructions for Windows, necessary to convert the assets symlink to a Windows symlink:

From git bash, inside the cloned project root:

$ rm WordPressEditor/src/main/assets
$ git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin

Then, from a Windows command prompt:

mklink /D [PROJECT_ROOT]\WordPressEditor\src\main\assets %PROJECT_ROOT%\libs\editor-common\assets

Finally, update `[PROJECT_ROOT]\.git\info\exclude` to ignore the symlink locally:

# assets symlink
WordPressEditor/src/main/assets

## Testing ##

This project has both unit testing and integration testing, maintained and run separately.

Unit testing is done with the [Robolectric framework](http://robolectric.org/). To run unit tests simply run `gradlew testDebug`. Code coverage reports can be generated via [JaCoCo.](http://www.eclemma.org/jacoco/) To generate them locally run `gradlew jacocoTestReport`.

Integration testing is done with the [Android testing framework](http://developer.android.com/tools/testing/testing_android.html). To run integration tests run `gradlew connectedAndroidTest`.

Add new unit tests to `src/test/java/` and integration tests to `stc/androidTest/java/`.

## LICENSE ##

WordPress-Editor-Android is an Open Source project covered by the [GNU General Public License version 2](LICENSE.md).
Loading

0 comments on commit 9eaf958

Please sign in to comment.