Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
georgejecook authored and George Cook committed Jul 20, 2018
1 parent 9a72277 commit 39969ee
Show file tree
Hide file tree
Showing 87 changed files with 139,670 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .buildpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path="components"/>
<buildpathentry kind="src" path="source"/>
<buildpathentry kind="src" path="out"/>
<buildpathentry kind="src" path="locale/default/images"/>
</buildpath>
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
.DS_Store
build
###BrightScript specific
dist/apps
out/
dist/

### Eclipse project files

.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders

# Eclipse Core
.project

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

#node
node_modules/
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Rooibos CHANGELOG

## 0.1.0 Initial release
- Core framework
- Documentation
- API documentation
- Build scripts
25 changes: 25 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

.PHONY: test dist doc

# Run the tests
test: dist
@rm -rf build/*
mkdir -p build
cp -r test/* build
cp dist/rooibos.cat.brs build/source
cd build; ${MAKE} install

# Smash the library down to one file
BLANK_LINES_RE="/^[ \t]*'.*/d"
COMMENT_LINES_RE="/^[ ]*$$/d"
LEADING_WHITESPACE_RE="s/^[ \t]*//"
dist:
sed "s/^/' VERSION: Rooibos /g" ./VERSION > ./dist/rooibos.cat.brs
sed "s/^/' LICENSE: /g" ./LICENSE >> ./dist/rooibos.cat.brs
#LEADING_WHITESPACE_RE is chopping off t's for the time being. need to fix it
#cd src && ls | xargs -J % sed -E -e ${COMMENT_LINES_RE} -e ${BLANK_LINES_RE} -e ${LEADING_WHITESPACE_RE} % >> ../dist/rooibos.cat.brs
cd src && ls | xargs -J % sed -E -e ${COMMENT_LINES_RE} -e ${BLANK_LINES_RE} % >> ../dist/rooibos.cat.brs

doc:
cd jsdoc && npm install
./jsdoc/node_modules/.bin/jsdoc -c jsdoc/jsdoc.json -t jsdoc/node_modules/ink-docstrap/template -d apiDocs
45 changes: 45 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<p align="center">
<img src="images/logo.png" alt="Mocha test framework" width="200" height="200"/>
</p>
<h3 align="center">
Simple, mocha-inspired, flexible, fun Brightscript test framework for ROKU apps
</h3>

## Links
- **[Documentation](docs/index.md)**
- **[Release notes / History / Changes](CHANGELOG.md)**
- [Roku dev forum topic](https://forums.roku.com/viewforum.php?f=34)
- [Roku developer slack group](https://join.slack.com/t/rokudevelopers/shared_invite/enQtMzgyODg0ODY0NDM5LTc2ZDdhZWI2MDBmYjcwYTk5MmE1MTYwMTA2NGVjZmJiNWM4ZWY2MjY1MDY0MmViNmQ1ZWRmMWUzYTVhNzJiY2M)
- [Issue tracker](https://github.com/georgejecook/rooibos/issues)
- [Roadmap](ROADMAP.md)

## Development

Rooibos is an independent open-source project, maintained exclusively by volunteers.

You might want to help! Get in touch via the slack group, or raise issues.

## Thanks
Rooibos was hacked together from the official roku unit testing framework. I'd like to say a big thank you to the guys at roku who gave me permission to build upon their work. The original framework can be found here : [https://github.com/rokudev/unit-testing-framework](https://github.com/rokudev/unit-testing-framework)

Also thanks to the guys who made and maintain [mochaJs](https://mochajs.org/), on which many of my changes are based upon, as well as the structure of the documentation.

## FAQ
### Is Rooibos ready for production use?
Rooibos has so far been used on a couple of production projects, running CI with over 800 tests between them. It does however, use the same test running mechanism of the official roku unit testing framework, which has been in circulation for several years.

### Is Rooibos actively maintained?
I am actively invovled in Rooibos's development, and add more features and fixes on a weekly basis. You can expect rapid responses to issues.

### Why did you not just merge back your changes to roku's unit testing framework
1. It does rewrite quite a lot of the original unit test framework code, so I doubt that roku would've merged it all back any time soon
2. It's conceptually entirely different: e.g. using annotations instead of naming conventions and boiler-plate code, completely different test reporting output, assertions and test cases maintain their own state, runs in a scenegraph scene, to name but a few
3. It has many more features than the original framework, not limited to : node specific assertions, exact assertion line failure reporting, better error messaging, easier setup, groupings, only and ignore for tests, mocks and stubs, etc, etc
4. Being completely frank, I enjoy roku work and want to do more of it, so it's useful to me to own this project, rather than lose control and wait on other's to merge my changes. On that note, email me at george[AT]tantawowa.com, or pm me (georgejecook) on the roku slack group to discuss any roku development requirements
5. I poured a _lot_ of work into the project (> 100 hours and counting), and expect to continue to do so. If I own the project, then I can do what I want, when I want. That goes for you guys as well, so get in touch with feature requests and PR's :)

### Is Rooibos itself unit tested?
At this point, no. It is on the [roadmap](ROADMAP.md) though!



24 changes: 24 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Rooibos roadmap
Up to date as of July 19th, 2018

## 0.1.0 Initial release

## 0.2.0 Initial feedback
Fix immediate issues that come back from the first few weeks of release
Also add an `'@OnlyParams[p1,...p6]` tag, so that we don't need to use `@IgnoreParams`

## 0.3.0 Unit tests for the framework
Unit tests will be written which test the following:

- Assertions
- Ignore
- Only
- Mocks
- Stubs
- Expect

## 0.4.0 Integration with [To be named] roku pre-processor
I have another project in the works which pre-processes brightscript and xml to provide an Adobe flex-like syntax for easy MVVM roku development. I want to integrate hooks into that, which will automatically generate node test files.

## 0.5.0 Add additional reporting opptions
Will add the ability to specifiy a unit test reporting class, to faciliate custom unit test reporting
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.0
Binary file added apiDocs/fonts/glyphicons-halflings-regular.eot
Binary file not shown.
Loading

0 comments on commit 39969ee

Please sign in to comment.