init ember app with 2 pages and an images
authornowmad@23.1.168.192.in-addr.arpa
Fri, 06 Nov 2015 15:37:09 +0100
changeset 5 d4b3da0dadc9
parent 4 f55970e41793
child 6 7ae41fc5b50b
init ember app with 2 pages and an images
cms/app-client/.bowerrc
cms/app-client/.editorconfig
cms/app-client/.ember-cli
cms/app-client/.gitignore
cms/app-client/.jshintrc
cms/app-client/.travis.yml
cms/app-client/.watchmanconfig
cms/app-client/README.md
cms/app-client/app/app.js
cms/app-client/app/components/.gitkeep
cms/app-client/app/controllers/.gitkeep
cms/app-client/app/controllers/second-page.js
cms/app-client/app/helpers/.gitkeep
cms/app-client/app/index.html
cms/app-client/app/models/.gitkeep
cms/app-client/app/router.js
cms/app-client/app/routes/.gitkeep
cms/app-client/app/styles/app.scss
cms/app-client/app/templates/application.hbs
cms/app-client/app/templates/components/.gitkeep
cms/app-client/app/templates/first-page.hbs
cms/app-client/app/templates/header-nav.hbs
cms/app-client/app/templates/index.hbs
cms/app-client/app/templates/second-page.hbs
cms/app-client/bower.json
cms/app-client/config/environment.js
cms/app-client/ember-cli-build.js
cms/app-client/gulpfile.js
cms/app-client/package.json
cms/app-client/public/assets/images/logo.png
cms/app-client/public/crossdomain.xml
cms/app-client/public/robots.txt
cms/app-client/public/styles.css
cms/app-client/testem.json
cms/app-client/tests/.jshintrc
cms/app-client/tests/helpers/resolver.js
cms/app-client/tests/helpers/start-app.js
cms/app-client/tests/index.html
cms/app-client/tests/test-helper.js
cms/app-client/tests/unit/.gitkeep
cms/app-client/vendor/.gitkeep
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.bowerrc	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,4 @@
+{
+  "directory": "bower_components",
+  "analytics": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.editorconfig	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,34 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 2
+
+[*.js]
+indent_style = space
+indent_size = 2
+
+[*.hbs]
+insert_final_newline = false
+indent_style = space
+indent_size = 2
+
+[*.css]
+indent_style = space
+indent_size = 2
+
+[*.html]
+indent_style = space
+indent_size = 2
+
+[*.{diff,md}]
+trim_trailing_whitespace = false
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.ember-cli	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,9 @@
+{
+  /**
+    Ember CLI sends analytics information by default. The data is completely
+    anonymous, but there are times when you might want to disable this behavior.
+
+    Setting `disableAnalytics` to true will prevent any data from being sent.
+  */
+  "disableAnalytics": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.gitignore	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,17 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+
+# dependencies
+/node_modules
+/bower_components
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage/*
+/libpeerconnection.log
+npm-debug.log
+testem.log
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.jshintrc	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,32 @@
+{
+  "predef": [
+    "document",
+    "window",
+    "-Promise"
+  ],
+  "browser": true,
+  "boss": true,
+  "curly": true,
+  "debug": false,
+  "devel": true,
+  "eqeqeq": true,
+  "evil": true,
+  "forin": false,
+  "immed": false,
+  "laxbreak": false,
+  "newcap": true,
+  "noarg": true,
+  "noempty": false,
+  "nonew": false,
+  "nomen": false,
+  "onevar": false,
+  "plusplus": false,
+  "regexp": false,
+  "undef": true,
+  "sub": true,
+  "strict": false,
+  "white": false,
+  "eqnull": true,
+  "esnext": true,
+  "unused": true
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.travis.yml	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,23 @@
+---
+language: node_js
+node_js:
+  - "0.12"
+
+sudo: false
+
+cache:
+  directories:
+    - node_modules
+
+before_install:
+  - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
+  - "npm config set spin false"
+  - "npm install -g npm@^2"
+
+install:
+  - npm install -g bower
+  - npm install
+  - bower install
+
+script:
+  - npm test
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/.watchmanconfig	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,3 @@
+{
+  "ignore_dirs": ["tmp"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/README.md	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,53 @@
+# App-client
+
+This README outlines the details of collaborating on this Ember application.
+A short introduction of this app could easily go here.
+
+## Prerequisites
+
+You will need the following things properly installed on your computer.
+
+* [Git](http://git-scm.com/)
+* [Node.js](http://nodejs.org/) (with NPM)
+* [Bower](http://bower.io/)
+* [Ember CLI](http://www.ember-cli.com/)
+* [PhantomJS](http://phantomjs.org/)
+
+## Installation
+
+* `git clone <repository-url>` this repository
+* change into the new directory
+* `npm install`
+* `bower install`
+
+## Running / Development
+
+* `ember server`
+* Visit your app at [http://localhost:4200](http://localhost:4200).
+
+### Code Generators
+
+Make use of the many generators for code, try `ember help generate` for more details
+
+### Running Tests
+
+* `ember test`
+* `ember test --server`
+
+### Building
+
+* `ember build` (development)
+* `ember build --environment production` (production)
+
+### Deploying
+
+Specify what it takes to deploy your app.
+
+## Further Reading / Useful Links
+
+* [ember.js](http://emberjs.com/)
+* [ember-cli](http://www.ember-cli.com/)
+* Development Browser Extensions
+  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
+  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/app.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,19 @@
+import Ember from 'ember';
+import Resolver from 'ember/resolver';
+import loadInitializers from 'ember/load-initializers';
+import config from './config/environment';
+
+var App;
+
+Ember.MODEL_FACTORY_INJECTIONS = true;
+
+App = Ember.Application.extend({
+  rootElement: config.rootElement,
+  modulePrefix: config.modulePrefix,
+  podModulePrefix: config.podModulePrefix,
+  Resolver: Resolver
+});
+
+loadInitializers(App, config.modulePrefix);
+
+export default App;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/controllers/second-page.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,8 @@
+import Ember from 'ember';
+import config from '../config/environment';
+
+console.log(config);
+
+export default Ember.Controller.extend({
+  logoUrl: config.baseStatic + "assets/images/logo.png"
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/index.html	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>AppClient</title>
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    {{content-for 'head'}}
+
+    <link rel="stylesheet" href="styles.css">
+
+    <link rel="stylesheet" href="assets/vendor.css">
+    <link rel="stylesheet" href="assets/app-client.css">
+
+    {{content-for 'head-footer'}}
+  </head>
+  <body>
+    <div class="header">
+      <h1>Corpus de la parole</h1>
+      <div class="menu">
+        <ul class="menu_main">
+          <li> <a href=""> CORPUS </a> </li>
+          <li> <a href=""> LANGUES </a> </li>
+          <li> <a href=""> PROJET </a> </li>
+          <li> <a href=""> RECHERCHE </a> </li>
+        </ul>
+      </div>
+    </div>
+
+    {{content-for 'body'}}
+    <div id="corpus-app"></div>
+
+    <script src="assets/vendor.js"></script>
+    <script src="assets/app-client.js"></script>
+
+    {{content-for 'body-footer'}}
+  </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/router.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,13 @@
+import Ember from 'ember';
+import config from './config/environment';
+
+var Router = Ember.Router.extend({
+  location: config.locationType
+});
+
+Router.map(function() {
+  this.route('first-page');
+  this.route('second-page');
+});
+
+export default Router;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/app.scss	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,10 @@
+#corpus-app {
+  border: 1px solid;
+  width: 940px;
+  height: 900px;
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+  margin-bottom: 10px;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/application.hbs	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,5 @@
+{{render 'header-nav'}}
+
+<div class="container">
+  {{outlet}}
+</div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/first-page.hbs	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,1 @@
+<h2>This is a first page</h2>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/header-nav.hbs	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,27 @@
+<nav class="navbar navbar-default" role="navigation">
+  <div class="container-fluid">
+
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
+              data-target="#header_nav_collapse">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <span class="logo">{{link-to 'Corpus' 'index' class='navbar-brand'}} </span>
+    </div>
+
+    <div class="collapse navbar-collapse" id="header_nav_collapse">
+      <ul class="nav navbar-nav">
+        <li>
+          {{link-to 'First Page' 'first-page'}}
+        </li>
+        <li>
+          {{link-to 'Second-page' 'second-page'}}
+        </li>
+      </ul>
+    </div>
+
+  </div>
+</nav>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/index.hbs	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,1 @@
+<h2>Welcome to CORPUS !</h2>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/second-page.hbs	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,4 @@
+<h2>This is a second page !</h2>
+<p>With a Logo !</p>
+<img src={{logoUrl}} alt="Logo">
+<p>{{ENV}}</p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/bower.json	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,17 @@
+{
+  "name": "app-client",
+  "dependencies": {
+    "ember": "1.13.7",
+    "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
+    "ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
+    "ember-data": "1.13.8",
+    "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5",
+    "ember-qunit": "0.4.9",
+    "ember-qunit-notifications": "0.0.7",
+    "ember-resolver": "~0.1.18",
+    "jquery": "^1.11.3",
+    "loader.js": "ember-cli/loader.js#3.2.1",
+    "qunit": "~1.18.0",
+    "bootstrap-sass": "~3.3.5"
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/config/environment.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,43 @@
+/* jshint node: true */
+
+module.exports = function(environment) {
+  var ENV = {
+    rootElement: '#corpus-app',
+    modulePrefix: 'app-client',
+    environment: environment,
+    baseURL: '/corpus',
+    locationType: 'auto',
+    APP: {
+      baseStatic: '',
+      // Here you can pass flags/options to your application instance
+      // when it is created
+    }
+  };
+
+  if (environment === 'development') {
+    ENV.baseStatic = '';
+    // ENV.APP.LOG_RESOLVER = true;
+    // ENV.APP.LOG_ACTIVE_GENERATION = true;
+    // ENV.APP.LOG_TRANSITIONS = true;
+    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
+    // ENV.APP.LOG_VIEW_LOOKUPS = true;
+  }
+
+  if (environment === 'test') {
+    // Testem prefers this...
+    ENV.baseURL = '/';
+    ENV.locationType = 'none';
+
+    // keep test console output quieter
+    ENV.APP.LOG_ACTIVE_GENERATION = false;
+    ENV.APP.LOG_VIEW_LOOKUPS = false;
+
+    ENV.APP.rootElement = '#ember-testing';
+  }
+
+  if (environment === 'production') {
+    ENV.APP.baseStatic = '/modules/corpus/app-client/';
+  }
+
+  return ENV;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/ember-cli-build.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,31 @@
+/* global require, module */
+var EmberApp = require('ember-cli/lib/broccoli/ember-app');
+
+module.exports = function(defaults) {
+  var app = new EmberApp(defaults, {
+    // Add options here
+    sassOptions: {
+      includePaths: [
+        'bower_components/bootstrap-sass/assets/stylesheets/'
+      ]
+    },
+    fingerprint: {
+      enabled: false
+    }
+  });
+
+  // Use `app.import` to add additional libraries to the generated
+  // output files.
+  //
+  // If you need to use different assets in different
+  // environments, specify an object as the first parameter. That
+  // object's keys should be the environment name and the values
+  // should be the asset to use in that environment.
+  //
+  // If the library that you are including contains AMD or ES6
+  // modules that you would like to import into your application
+  // please specify an object with the list of modules as keys
+  // along with the exports of each module as its value.
+
+  return app.toTree();
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/gulpfile.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,14 @@
+var gulp = require('gulp'),
+    rename = require('gulp-rename');
+
+var buildFolder = './dist';
+var moduleFolder = '../corpus_module';
+
+gulp.task('copy-module', function () {
+  gulp.src(buildFolder+'/assets/**/*')
+    .pipe(gulp.dest(moduleFolder+'/app-client/assets'));
+  gulp.src(buildFolder+'/fonts/**/*')
+    .pipe(gulp.dest(moduleFolder+'/app-client/fonts'));
+  gulp.src(moduleFolder+'/**/*')
+    .pipe(gulp.dest('../../../drupal-7.41/modules/corpus'));
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/package.json	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,44 @@
+{
+  "name": "app-client",
+  "version": "0.0.0",
+  "description": "Small description for app-client goes here",
+  "private": true,
+  "directories": {
+    "doc": "doc",
+    "test": "tests"
+  },
+  "scripts": {
+    "module": "ember build --environment=production && gulp copy-module",
+    "build": "ember build --environment=production",
+    "start": "ember serve --environment=development",
+    "test": "ember test"
+  },
+  "repository": "",
+  "engines": {
+    "node": ">= 0.10.0"
+  },
+  "author": "",
+  "license": "MIT",
+  "devDependencies": {
+    "broccoli-asset-rev": "^2.1.2",
+    "ember-cli": "1.13.8",
+    "ember-cli-app-version": "0.5.0",
+    "ember-cli-babel": "^5.1.3",
+    "ember-cli-content-security-policy": "0.4.0",
+    "ember-cli-dependency-checker": "^1.0.1",
+    "ember-cli-htmlbars": "0.7.9",
+    "ember-cli-htmlbars-inline-precompile": "^0.2.0",
+    "ember-cli-ic-ajax": "0.2.1",
+    "ember-cli-inject-live-reload": "^1.3.1",
+    "ember-cli-qunit": "^1.0.0",
+    "ember-cli-release": "0.2.3",
+    "ember-cli-sass": "5.0.1",
+    "ember-cli-sri": "^1.0.3",
+    "ember-cli-uglify": "^1.2.0",
+    "ember-data": "1.13.8",
+    "ember-disable-proxy-controllers": "^1.0.0",
+    "ember-export-application-global": "^1.0.3",
+    "gulp": "^3.9.0",
+    "gulp-rename": "^1.2.2"
+  }
+}
Binary file cms/app-client/public/assets/images/logo.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/public/crossdomain.xml	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
+<cross-domain-policy>
+  <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
+
+  <!-- Most restrictive policy: -->
+  <site-control permitted-cross-domain-policies="none"/>
+
+  <!-- Least restrictive policy: -->
+  <!--
+  <site-control permitted-cross-domain-policies="all"/>
+  <allow-access-from domain="*" to-ports="*" secure="false"/>
+  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
+  -->
+</cross-domain-policy>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/public/robots.txt	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,3 @@
+# http://www.robotstxt.org
+User-agent: *
+Disallow:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/public/styles.css	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,66 @@
+body{
+  margin: 0;
+}
+.header {
+  /*background-color: green;*/
+  width: 940px;
+  height: 90px;
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+  margin-bottom: 1px;
+  padding-top: 20px;
+  border: 1px solid
+}
+
+.header h1 {
+  font-size: x-large;
+  font-style: normal;
+  text-align: center;
+  font-weight: 800;
+  padding-left: 15px;
+  margin-bottom: 10px;
+  margin-top: 0;
+  color: darkorange;
+}
+div.menu {
+  float:right;
+  position:relative;
+  left:-50%;
+  text-align:left;
+  background-color: transparent;
+  border: none;
+}
+
+ul.menu_main {
+  list-style:none;
+  position:relative;
+  left:50%;
+  padding: 0;
+  display: inline-block;
+  width: 100%;
+  float: none;
+  margin: 0 auto 0 auto;
+}
+
+ul.menu_main li {
+  float: left;
+  list-style: none;
+  /*border-right: 1px solid #4f4f4f;*/
+  position: relative;
+}
+
+ul.menu_main li a {
+  color: darkorange;
+  display: block;
+  font-family: Arial;
+  font-size: 13px;
+  padding: 8px 20px 10px;
+  text-decoration: none;
+  /*border-right: 1px solid #2b2b2b;*/
+}
+
+ul.menu_main li a:hover {
+  font-weight: 900;
+  background-color: bisque;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/testem.json	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,12 @@
+{
+  "framework": "qunit",
+  "test_page": "tests/index.html?hidepassed",
+  "disable_watching": true,
+  "launch_in_ci": [
+    "PhantomJS"
+  ],
+  "launch_in_dev": [
+    "PhantomJS",
+    "Chrome"
+  ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/.jshintrc	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,52 @@
+{
+  "predef": [
+    "document",
+    "window",
+    "location",
+    "setTimeout",
+    "$",
+    "-Promise",
+    "define",
+    "console",
+    "visit",
+    "exists",
+    "fillIn",
+    "click",
+    "keyEvent",
+    "triggerEvent",
+    "find",
+    "findWithAssert",
+    "wait",
+    "DS",
+    "andThen",
+    "currentURL",
+    "currentPath",
+    "currentRouteName"
+  ],
+  "node": false,
+  "browser": false,
+  "boss": true,
+  "curly": true,
+  "debug": false,
+  "devel": false,
+  "eqeqeq": true,
+  "evil": true,
+  "forin": false,
+  "immed": false,
+  "laxbreak": false,
+  "newcap": true,
+  "noarg": true,
+  "noempty": false,
+  "nonew": false,
+  "nomen": false,
+  "onevar": false,
+  "plusplus": false,
+  "regexp": false,
+  "undef": true,
+  "sub": true,
+  "strict": false,
+  "white": false,
+  "eqnull": true,
+  "esnext": true,
+  "unused": true
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/helpers/resolver.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,11 @@
+import Resolver from 'ember/resolver';
+import config from '../../config/environment';
+
+var resolver = Resolver.create();
+
+resolver.namespace = {
+  modulePrefix: config.modulePrefix,
+  podModulePrefix: config.podModulePrefix
+};
+
+export default resolver;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/helpers/start-app.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,18 @@
+import Ember from 'ember';
+import Application from '../../app';
+import config from '../../config/environment';
+
+export default function startApp(attrs) {
+  var application;
+
+  var attributes = Ember.merge({}, config.APP);
+  attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
+
+  Ember.run(function() {
+    application = Application.create(attributes);
+    application.setupForTesting();
+    application.injectTestHelpers();
+  });
+
+  return application;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/index.html	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>AppClient Tests</title>
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    {{content-for 'head'}}
+    {{content-for 'test-head'}}
+
+    <link rel="stylesheet" href="assets/vendor.css">
+    <link rel="stylesheet" href="assets/app-client.css">
+    <link rel="stylesheet" href="assets/test-support.css">
+
+    {{content-for 'head-footer'}}
+    {{content-for 'test-head-footer'}}
+  </head>
+  <body>
+
+    {{content-for 'body'}}
+    {{content-for 'test-body'}}
+    <script src="assets/vendor.js"></script>
+    <script src="assets/test-support.js"></script>
+    <script src="assets/app-client.js"></script>
+    <script src="testem.js"></script>
+    <script src="assets/test-loader.js"></script>
+
+    {{content-for 'body-footer'}}
+    {{content-for 'test-body-footer'}}
+  </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/test-helper.js	Fri Nov 06 15:37:09 2015 +0100
@@ -0,0 +1,6 @@
+import resolver from './helpers/resolver';
+import {
+  setResolver
+} from 'ember-qunit';
+
+setResolver(resolver);