<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Test Product</title>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
</head>
<body>
	<h1>TESTING</h1>
	<button id="test-button" class="btn btn-success btn-lg btn-block">Test Button</button>

	<script src="../javascript/draper.activity_logger-2.1.1.js"></script>
	<script>
	// web worker url
	var worker = "../javascript/draper.activity_worker-2.1.1.js"
	var ac = new activityLogger(worker)
	.testing(false) // simulate POST, won't send log
	.echo(true) // log to console
	.mute(['SYS']); // don't log SYSTEM actions
	</script>
	<script src="test_logging.js"></script>
</body>
</html>