--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarwidgetplugin/resource/qtg_graf_hswidget_preview_calendar.svg Mon Oct 04 00:05:38 2010 +0300
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="320px" height="210px" viewBox="0 0 320 210">
+<g>
+<path fill="#F2F2F2" d="M25.725,150.064c-4.604,0-8.349-3.746-8.349-8.35V86.57c0-4.604,3.746-8.349,8.349-8.349h270.253 c4.604,0,8.35,3.746,8.35,8.349v55.145c0,4.604-3.746,8.35-8.35,8.35H25.725z"/>
+<path fill="#E6E6E6" d="M25.725,149.543c-4.315,0-7.827-3.512-7.827-7.828V86.57c0-4.317,3.512-7.827,7.827-7.827h270.253 c4.315,0,7.828,3.51,7.828,7.827v55.145c0,4.316-3.513,7.828-7.828,7.828H25.725z"/>
+<path fill="#CCCCCC" d="M25.725,149.021c-4.028,0-7.306-3.28-7.306-7.306V86.57c0-4.027,3.277-7.306,7.306-7.306h270.253 c4.028,0,7.306,3.278,7.306,7.306v55.145c0,4.025-3.277,7.306-7.306,7.306H25.725z"/>
+<path fill="#B3B3B3" d="M25.725,148.499c-3.74,0-6.784-3.043-6.784-6.784V86.57c0-3.74,3.043-6.784,6.784-6.784h270.253 c3.741,0,6.784,3.043,6.784,6.784v55.145c0,3.741-3.043,6.784-6.784,6.784H25.725z"/>
+<path fill="#999999" d="M295.952,79.57H25.698c-3.444,0-6.262,2.817-6.262,6.262v55.146c0,3.442,2.818,6.262,6.262,6.262h270.254 c3.443,0,6.263-2.819,6.263-6.262V85.832C302.215,82.388,299.396,79.57,295.952,79.57z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="223.8857" y1="-291.9502" x2="223.8857" y2="-258.9612" gradientTransform="matrix(1 0 0 -1 -63.0601 -144.4414)">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M302.215,140.959c0,3.445-2.819,6.262-6.263,6.262H25.698c-3.444,0-6.262-2.816-6.262-6.262V85.814 c0-3.444,2.818-6.262,6.262-6.262h270.254c3.443,0,6.263,2.818,6.263,6.262V140.959z"/>
+<path fill="#CCCCCC" d="M295.952,80.074c3.165,0,5.74,2.575,5.74,5.74v55.145c0,3.165-2.575,5.74-5.74,5.74H25.698 c-3.166,0-5.74-2.575-5.74-5.74V85.814c0-3.166,2.575-5.74,5.74-5.74H295.952 M295.952,79.552H25.698 c-3.444,0-6.262,2.818-6.262,6.262v55.145c0,3.445,2.818,6.262,6.262,6.262h270.254c3.443,0,6.263-2.816,6.263-6.262V85.814 C302.215,82.37,299.396,79.552,295.952,79.552L295.952,79.552z"/>
+<line fill="none" stroke="#D9D9D9" x1="96.213" y1="79.719" x2="96.213" y2="147.221"/>
+<line fill="none" stroke="#FFFFFF" x1="97.287" y1="79.719" x2="97.287" y2="147.221"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="29.5332" y1="3351.7764" x2="29.5332" y2="3402.5461" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#DDE3E6"/>
+<stop offset="0.24" style="stop-color:#C9CED1"/>
+<stop offset="0.96" style="stop-color:#899396"/>
+<stop offset="1" style="stop-color:#899396"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M85.731,115.802c0,0.868-0.708,1.567-1.573,1.567H30.745c-0.867,0-1.57-0.699-1.57-1.567V67.867 c0-0.869,0.703-1.578,1.57-1.578h53.413c0.866,0,1.573,0.709,1.573,1.578V115.802z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="29.5332" y1="3351.5078" x2="29.5332" y2="3402.9072" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#ECF3F5"/>
+<stop offset="0.25" style="stop-color:#ECF3F5"/>
+<stop offset="0.86" style="stop-color:#7E878A"/>
+<stop offset="1" style="stop-color:#B0B8BB"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M84.158,67.083c0.429,0,0.776,0.353,0.776,0.785v47.934c0,0.43-0.344,0.776-0.776,0.776H30.745 c-0.429,0-0.775-0.347-0.775-0.776V67.868c0-0.433,0.346-0.786,0.775-0.786L84.158,67.083 M84.158,66.29H30.745 c-0.867,0-1.57,0.709-1.57,1.578v47.934c0,0.868,0.703,1.567,1.57,1.567h53.413c0.866,0,1.573-0.699,1.573-1.567V67.868 C85.731,66.999,85.024,66.29,84.158,66.29L84.158,66.29z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="29.4927" y1="3354.6846" x2="29.4927" y2="3399.9121" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#707173"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="31.773" y="68.92" fill-opacity="0.4" stroke-opacity="0.4" fill="url(#SVGID_4_)" width="51.28" height="45.738"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="40.4878" y1="3400.4443" x2="43.5954" y2="3405.4248" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#737373"/>
+<stop offset="1" style="stop-color:#DEDEDE"/>
+</linearGradient>
+<rect x="33.263" y="81.41" fill="url(#SVGID_5_)" width="48.346" height="31.923"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="33.1377" y1="3394.5742" x2="24.0239" y2="3364.7903" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#CCCCCC"/>
+</linearGradient>
+<path fill="url(#SVGID_6_)" d="M72.229,111.089c-3.829,1.003-14.838,2.183-14.838,2.183h-24.11V81.346h48.344 c0,0-0.018,22.207-0.69,24.923C80.34,108.669,77.748,109.642,72.229,111.089z"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="29.5332" y1="3355.8174" x2="29.5332" y2="3366.6287" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#FF7042"/>
+<stop offset="1" style="stop-color:#991B23"/>
+</linearGradient>
+<rect x="33.281" y="70.394" fill="url(#SVGID_7_)" width="48.344" height="10.952"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="41.5493" y1="3393.5225" x2="44.0529" y2="3398.2188" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path fill-opacity="0.42" stroke-opacity="0.42" fill="url(#SVGID_8_)" d="M71.636,111.7c-3.52,0.677-8.354,1.323-14.972,1.389 l24.758-11.706c0,0,0.022,2.545-0.488,4.888C80.935,106.269,80.523,109.972,71.636,111.7z"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="42.0239" y1="3398.5244" x2="40.506" y2="3395.1772" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#9C9C9C"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path fill="url(#SVGID_9_)" d="M55.984,113.264c0,0,14.415-0.126,19.773-7.471c0,0,3.839,4.728,5.18,0.476 C80.364,109.189,75.223,113.37,55.984,113.264z"/>
+<path fill="#FFFFFF" d="M75.871,106.572c0,0,2.866,3.008,4.493,1.002c0.306-0.454,0.488-0.904,0.57-1.327 c-1.34,4.246-5.177-0.488-5.177-0.488c-5.362,7.348-19.776,7.471-19.776,7.471C62.667,113.229,72.541,111.144,75.871,106.572z"/>
+<polygon fill="#FFE6E6" points="81.625,70.709 33.281,70.709 33.281,70.087 81.625,70.087 "/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="41.7539" y1="3360.8916" x2="48.2016" y2="3360.8916" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#FB6C41"/>
+<stop offset="0.5" style="stop-color:#FFB69E"/>
+<stop offset="1" style="stop-color:#FB6C41"/>
+</linearGradient>
+<path fill="url(#SVGID_10_)" d="M76.014,75.4c0,1.661-1.433,3.007-3.19,3.007c-1.764,0-3.196-1.346-3.196-3.007 c0-1.659,1.433-2.999,3.196-2.999C74.581,72.401,76.014,73.742,76.014,75.4z"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="11.3462" y1="3360.8906" x2="17.7953" y2="3360.8906" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#FB6C41"/>
+<stop offset="0.5" style="stop-color:#FFB69E"/>
+<stop offset="1" style="stop-color:#FB6C41"/>
+</linearGradient>
+<ellipse fill="url(#SVGID_11_)" cx="42.401" cy="75.404" rx="3.195" ry="3.004"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="44.9009" y1="3357.7256" x2="44.9009" y2="3363.0977" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#4A050A"/>
+<stop offset="1" style="stop-color:#B00F25"/>
+</linearGradient>
+<path fill="url(#SVGID_12_)" d="M76.014,74.633c0,1.765-1.433,3.193-3.19,3.193c-1.764,0-3.196-1.429-3.196-3.193 c0-1.762,1.433-3.195,3.196-3.195C74.581,71.439,76.014,72.872,76.014,74.633z"/>
+<rect x="39.26" y="66.29" fill-opacity="0.4" stroke-opacity="0.4" fill="#231F20" width="6.296" height="7.973"/>
+<rect x="69.639" y="66.29" fill-opacity="0.4" stroke-opacity="0.4" fill="#231F20" width="6.296" height="7.973"/>
+<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="42.6387" y1="3355.4463" x2="47.1651" y2="3355.4463" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#B6B4B5"/>
+<stop offset="0.12" style="stop-color:#FFFCFE"/>
+<stop offset="0.68" style="stop-color:#595959"/>
+<stop offset="0.95" style="stop-color:#D4D3D3"/>
+<stop offset="1" style="stop-color:#D4D3D3"/>
+</linearGradient>
+<path fill="url(#SVGID_13_)" d="M72.824,63.232c-1.261,0-2.281,1.019-2.281,2.281v8.893c0,1.261,1.02,2.278,2.281,2.278 c1.255,0,2.279-1.018,2.279-2.278v-8.893C75.103,64.251,74.079,63.232,72.824,63.232z"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="14.4819" y1="3357.7256" x2="14.4819" y2="3363.0977" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#4A050A"/>
+<stop offset="1" style="stop-color:#B00F25"/>
+</linearGradient>
+<path fill="url(#SVGID_14_)" d="M45.596,74.633c0,1.765-1.431,3.193-3.195,3.193s-3.193-1.429-3.193-3.193 c0-1.762,1.43-3.195,3.193-3.195S45.596,72.872,45.596,74.633z"/>
+<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="12.2144" y1="3355.4463" x2="16.7453" y2="3355.4463" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#B6B4B5"/>
+<stop offset="0.12" style="stop-color:#FFFCFE"/>
+<stop offset="0.68" style="stop-color:#595959"/>
+<stop offset="0.95" style="stop-color:#D4D3D3"/>
+<stop offset="1" style="stop-color:#D4D3D3"/>
+</linearGradient>
+<path fill="url(#SVGID_15_)" d="M42.401,63.232c-1.262,0-2.28,1.019-2.28,2.281v8.893c0,1.261,1.019,2.278,2.28,2.278 c1.26,0,2.284-1.018,2.284-2.278v-8.893C44.684,64.251,43.661,63.232,42.401,63.232z"/>
+<polygon fill="#701619" points="81.625,81.652 33.281,81.652 33.281,81.031 81.625,81.031 "/>
+<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="50.9746" y1="3395.1738" x2="53.1152" y2="3395.1738" gradientTransform="matrix(1 0 0 1 27.9199 -3285.4883)">
+<stop offset="0" style="stop-color:#D2D3D4"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path fill-opacity="0.35" stroke-opacity="0.35" fill="url(#SVGID_16_)" d="M78.931,108.054c-3.343,2.69-11.36,4.283-16.431,5.051 c13.92-0.797,17.954-4.249,18.437-6.836C80.34,108.056,79.629,108.031,78.931,108.054z"/>
+<rect x="23.704" y="56.028" fill="none" width="67.498" height="67.499"/>
+<g>
+<g>
+<path d="M111.795,106.252v1.337h-7.68v-1.337h2.909V95.401l-2.909,0.712v-1.338l3.844-1.243h1.058v12.721L111.795,106.252 L111.795,106.252z"/>
+<path d="M115.189,99.544c1.029,0,1.834-0.047,2.418-0.146c0.583-0.097,1.04-0.318,1.371-0.668 c0.331-0.35,0.496-0.883,0.496-1.599c0-1.498-0.78-2.246-2.339-2.246c-0.667,0-1.559,0.153-2.675,0.459v-1.413 c1.065-0.293,2.066-0.44,3.002-0.44c2.725,0,4.088,1.148,4.088,3.443c0,0.767-0.218,1.443-0.654,2.028 c-0.436,0.588-1.044,0.994-1.824,1.227c0.854,0.15,1.512,0.514,1.974,1.093c0.461,0.581,0.692,1.305,0.692,2.171 c0,2.855-1.572,4.283-4.714,4.283c-0.973,0-1.949-0.146-2.927-0.438v-1.413c1.266,0.306,2.248,0.457,2.946,0.457 c1.752,0,2.628-0.901,2.628-2.703c0-0.96-0.265-1.661-0.795-2.1c-0.53-0.44-1.759-0.66-3.685-0.66V99.544z"/>
+<path d="M125.666,100.62c-0.35,0-0.65-0.129-0.903-0.388s-0.378-0.566-0.378-0.921c0-0.351,0.125-0.648,0.374-0.894 c0.249-0.246,0.552-0.368,0.908-0.368c0.354,0,0.654,0.122,0.897,0.368c0.243,0.245,0.365,0.545,0.365,0.894 c0,0.354-0.124,0.662-0.37,0.921C126.312,100.491,126.014,100.62,125.666,100.62z M125.666,107.738 c-0.356,0-0.659-0.125-0.908-0.373c-0.25-0.248-0.374-0.551-0.374-0.907c0-0.355,0.125-0.659,0.374-0.906 c0.249-0.249,0.552-0.374,0.908-0.374c0.348,0,0.646,0.125,0.892,0.374c0.246,0.247,0.37,0.551,0.37,0.906 c0,0.356-0.124,0.659-0.37,0.907C126.312,107.613,126.014,107.738,125.666,107.738z"/>
+<path d="M133.25,93.494c1.347,0,2.363,0.514,3.05,1.543c0.686,1.027,1.029,2.831,1.029,5.405c0,2.825-0.346,4.747-1.039,5.767 c-0.692,1.021-1.718,1.529-3.077,1.529c-1.365,0-2.395-0.508-3.091-1.524c-0.695-1.016-1.042-2.94-1.042-5.771 c0-2.538,0.349-4.329,1.046-5.377C130.825,94.018,131.867,93.494,133.25,93.494z M133.213,106.4c0.704,0,1.228-0.373,1.572-1.125 c0.343-0.752,0.515-2.363,0.515-4.833c0-1.215-0.04-2.205-0.117-2.969c-0.078-0.764-0.268-1.396-0.57-1.895 c-0.303-0.499-0.769-0.748-1.398-0.748c-0.642,0-1.116,0.251-1.422,0.754c-0.306,0.5-0.495,1.132-0.571,1.89 c-0.075,0.758-0.111,1.747-0.111,2.97c0,2.469,0.171,4.079,0.515,4.831C131.966,106.025,132.496,106.4,133.213,106.4z"/>
+<path d="M143.54,93.494c1.348,0,2.363,0.514,3.05,1.543c0.685,1.027,1.029,2.831,1.029,5.405c0,2.825-0.347,4.747-1.038,5.767 c-0.692,1.021-1.718,1.529-3.078,1.529c-1.365,0-2.395-0.508-3.091-1.524c-0.695-1.016-1.042-2.94-1.042-5.771 c0-2.538,0.349-4.329,1.047-5.377C141.113,94.018,142.155,93.494,143.54,93.494z M143.502,106.4c0.704,0,1.228-0.373,1.572-1.125 c0.343-0.752,0.515-2.363,0.515-4.833c0-1.215-0.04-2.205-0.117-2.969c-0.078-0.764-0.268-1.396-0.57-1.895 c-0.303-0.499-0.769-0.748-1.398-0.748c-0.642,0-1.115,0.251-1.421,0.754c-0.306,0.5-0.496,1.132-0.571,1.89 s-0.112,1.747-0.112,2.97c0,2.469,0.171,4.079,0.515,4.831C142.255,106.025,142.786,106.4,143.502,106.4z"/>
+<path d="M158.58,100.771v1.897h-4.583v-1.897H158.58z"/>
+<path d="M173.06,106.252v1.337h-7.679v-1.337h2.909V95.401l-2.909,0.712v-1.338l3.846-1.243h1.058v12.721L173.06,106.252 L173.06,106.252z"/>
+<path d="M183.769,103.034v1.394h-1.44v3.161h-1.992v-3.161h-5.762v-1.319l5.921-9.578h1.833v9.503L183.769,103.034 L183.769,103.034z M176.352,103.034h3.984v-6.671L176.352,103.034z"/>
+<path d="M186.931,100.62c-0.35,0-0.65-0.129-0.903-0.388s-0.379-0.566-0.379-0.921c0-0.351,0.126-0.648,0.375-0.894 c0.249-0.246,0.552-0.368,0.907-0.368c0.354,0,0.654,0.122,0.897,0.368c0.244,0.245,0.364,0.545,0.364,0.894 c0,0.354-0.122,0.662-0.369,0.921C187.575,100.491,187.279,100.62,186.931,100.62z M186.931,107.738 c-0.355,0-0.658-0.125-0.907-0.373s-0.375-0.551-0.375-0.907c0-0.355,0.126-0.659,0.375-0.906 c0.249-0.249,0.552-0.374,0.907-0.374c0.349,0,0.646,0.125,0.893,0.374c0.247,0.247,0.369,0.551,0.369,0.906 c0,0.356-0.122,0.659-0.369,0.907C187.575,107.613,187.279,107.738,186.931,107.738z"/>
+<path d="M194.516,93.494c1.347,0,2.364,0.514,3.049,1.543c0.688,1.027,1.029,2.831,1.029,5.405c0,2.825-0.347,4.747-1.037,5.767 c-0.693,1.021-1.719,1.529-3.078,1.529c-1.365,0-2.396-0.508-3.092-1.524c-0.695-1.016-1.042-2.94-1.042-5.771 c0-2.538,0.349-4.329,1.048-5.377C192.091,94.018,193.131,93.494,194.516,93.494z M194.479,106.4 c0.705,0,1.229-0.373,1.571-1.125c0.343-0.752,0.514-2.363,0.514-4.833c0-1.215-0.038-2.205-0.116-2.969 c-0.077-0.764-0.268-1.396-0.57-1.895c-0.302-0.499-0.769-0.748-1.398-0.748c-0.643,0-1.116,0.251-1.421,0.754 c-0.306,0.5-0.497,1.132-0.57,1.89c-0.076,0.758-0.112,1.747-0.112,2.97c0,2.469,0.171,4.079,0.514,4.831 C193.231,106.025,193.761,106.4,194.479,106.4z"/>
+<path d="M204.805,93.494c1.348,0,2.362,0.514,3.05,1.543c0.686,1.027,1.029,2.831,1.029,5.405c0,2.825-0.347,4.747-1.04,5.767 c-0.69,1.021-1.718,1.529-3.075,1.529c-1.366,0-2.397-0.508-3.093-1.524c-0.695-1.016-1.041-2.94-1.041-5.771 c0-2.538,0.348-4.329,1.045-5.377C202.379,94.018,203.421,93.494,204.805,93.494z M204.769,106.4 c0.703,0,1.227-0.373,1.571-1.125c0.343-0.752,0.514-2.363,0.514-4.833c0-1.215-0.039-2.205-0.116-2.969s-0.27-1.396-0.571-1.895 c-0.304-0.499-0.767-0.748-1.397-0.748c-0.643,0-1.117,0.251-1.423,0.754c-0.306,0.5-0.496,1.132-0.571,1.89 c-0.072,0.758-0.109,1.747-0.109,2.97c0,2.469,0.171,4.079,0.515,4.831C203.521,106.025,204.051,106.4,204.769,106.4z"/>
+</g>
+<g>
+<path fill="#595959" d="M106.528,131.354l-3.778-13.946h2.104l2.918,11.608l3.059-11.608h1.824l-3.911,13.946H106.528z"/>
+<path fill="#595959" d="M120.942,129.688v1.357c-0.979,0.306-1.992,0.458-3.04,0.458c-1.521,0-2.659-0.458-3.414-1.375 s-1.132-2.328-1.132-4.238c0-1.676,0.366-3.024,1.095-4.044c0.729-1.021,1.771-1.529,3.124-1.529 c1.098,0,1.922,0.289,2.474,0.875c0.552,0.583,0.906,1.296,1.061,2.141c0.156,0.848,0.234,1.85,0.234,3.017h-5.874 c0,1.268,0.225,2.216,0.674,2.849c0.45,0.631,1.122,0.948,2.021,0.948C118.925,130.146,119.85,129.994,120.942,129.688z M115.47,125.124h3.919c0-1.315-0.155-2.245-0.468-2.787c-0.312-0.543-0.761-0.813-1.348-0.813c-0.654,0-1.155,0.281-1.5,0.842 C115.727,122.926,115.525,123.845,115.47,125.124z"/>
+<path fill="#595959" d="M124.674,120.476l0.458,1.814c0.605-1.278,1.658-1.919,3.161-1.919c0.2,0,0.347,0.011,0.44,0.029v1.813 c-0.156-0.013-0.39-0.021-0.702-0.021c-0.854,0-1.481,0.206-1.879,0.614c-0.399,0.409-0.599,1.048-0.599,1.912v6.632h-1.992 v-10.878h1.114V120.476z"/>
+<path fill="#595959" d="M132.148,130.951l-2.975-10.476h2.048l2.375,9.018l2.479-9.018h1.796l-3.405,11.533 c-0.262,0.866-0.63,1.503-1.104,1.912c-0.474,0.409-1.092,0.613-1.852,0.613c-0.524,0-1.104-0.065-1.74-0.195v-1.374 c0.573,0.111,1.097,0.167,1.571,0.167c0.431,0,0.782-0.146,1.052-0.436c0.271-0.288,0.531-0.871,0.782-1.744L132.148,130.951 L132.148,130.951z"/>
+<path fill="#595959" d="M146.177,131.354h-1.992v-9.579h-1.244v-1.3h3.236V131.354z M145.186,116.66 c0.306,0,0.569,0.11,0.791,0.336c0.221,0.225,0.332,0.489,0.332,0.795c0,0.312-0.108,0.579-0.327,0.8 c-0.218,0.224-0.483,0.331-0.795,0.331c-0.318,0-0.586-0.107-0.805-0.331c-0.218-0.221-0.328-0.488-0.328-0.8 c0-0.318,0.109-0.586,0.328-0.804C144.599,116.768,144.868,116.66,145.186,116.66z"/>
+<path fill="#595959" d="M162.611,131.354h-1.992v-7.493c0-0.724-0.136-1.268-0.407-1.633c-0.271-0.364-0.677-0.544-1.22-0.544 c-0.698,0-1.237,0.273-1.613,0.822c-0.378,0.547-0.566,1.263-0.566,2.143v6.707h-1.993v-7.493c0-0.722-0.138-1.268-0.416-1.631 c-0.277-0.365-0.694-0.546-1.248-0.546c-0.687,0-1.217,0.277-1.59,0.831c-0.374,0.556-0.562,1.267-0.562,2.134v6.707h-1.993 v-10.879h1.114l0.402,1.608c0.667-1.178,1.683-1.768,3.049-1.768c0.723,0,1.323,0.137,1.8,0.413s0.828,0.687,1.052,1.236 c0.617-1.099,1.606-1.646,2.965-1.646c1.073,0,1.876,0.288,2.415,0.869c0.537,0.581,0.805,1.448,0.805,2.601L162.611,131.354 L162.611,131.354z"/>
+<path fill="#595959" d="M166.411,120.476l0.401,1.552c0.394-0.579,0.829-1.01,1.309-1.29c0.48-0.282,1.093-0.421,1.835-0.421 c1.201,0,2.108,0.456,2.712,1.362c0.605,0.906,0.907,2.269,0.907,4.082c0,1.797-0.414,3.197-1.239,4.199 c-0.826,1.005-2.017,1.506-3.568,1.506c-0.412,0-0.904-0.068-1.478-0.206v3.217h-1.993v-14.001H166.411L166.411,120.476z M167.289,125.339v4.499c0.479,0.182,0.984,0.271,1.515,0.271c0.898,0,1.573-0.31,2.024-0.935 c0.452-0.623,0.678-1.792,0.678-3.507c0-1.327-0.167-2.324-0.504-2.987c-0.338-0.665-0.84-0.995-1.505-0.995 c-0.724,0-1.273,0.279-1.647,0.837C167.477,123.078,167.289,124.017,167.289,125.339z"/>
+<path fill="#595959" d="M179.756,131.503c-1.464,0-2.563-0.48-3.292-1.441c-0.73-0.96-1.095-2.4-1.095-4.322 c0-1.672,0.379-2.991,1.137-3.967c0.76-0.973,1.843-1.456,3.25-1.456c1.422,0,2.509,0.479,3.26,1.439s1.127,2.301,1.127,4.021 c0,1.771-0.351,3.168-1.053,4.193C182.389,130.991,181.278,131.503,179.756,131.503z M179.756,130.223 c0.768,0,1.345-0.349,1.735-1.043c0.391-0.695,0.584-1.859,0.584-3.495c0-1.152-0.197-2.121-0.596-2.903 c-0.401-0.783-0.974-1.175-1.722-1.175c-0.761,0-1.336,0.353-1.729,1.059c-0.392,0.705-0.59,1.713-0.59,3.021 c0,1.473,0.198,2.594,0.59,3.37C178.42,129.834,178.995,130.223,179.756,130.223z"/>
+<path fill="#595959" d="M187.512,120.476l0.456,1.814c0.605-1.278,1.659-1.919,3.162-1.919c0.199,0,0.346,0.011,0.439,0.029 v1.813c-0.154-0.013-0.389-0.021-0.701-0.021c-0.854,0-1.481,0.206-1.881,0.614c-0.399,0.409-0.598,1.048-0.598,1.912v6.632 h-1.993v-10.878h1.115V120.476z"/>
+<path fill="#595959" d="M196.014,131.503c-0.849,0-1.47-0.197-1.862-0.594c-0.393-0.396-0.588-1.026-0.588-1.893v-7.24h-1.43 v-0.748l2.907-2.966h0.514v2.414h2.647v1.3h-2.647v6.912c0,0.591,0.096,0.982,0.289,1.174c0.194,0.191,0.487,0.283,0.881,0.283 c0.403,0,0.954-0.09,1.646-0.271v1.291C197.534,131.391,196.749,131.503,196.014,131.503z"/>
+<path fill="#595959" d="M205.524,129.781c-0.673,1.149-1.721,1.722-3.144,1.722c-0.99,0-1.762-0.279-2.313-0.838 s-0.829-1.339-0.829-2.342c0-1.035,0.283-1.807,0.848-2.315c0.571-0.508,1.248-0.828,2.04-0.954 c0.793-0.129,1.758-0.193,2.892-0.193v-1.282c0-1.266-0.676-1.898-2.027-1.898c-0.78,0-1.73,0.164-2.854,0.498v-1.396 c1.13-0.312,2.202-0.466,3.219-0.466c1.196,0,2.105,0.286,2.726,0.864c0.62,0.577,0.932,1.425,0.932,2.547v7.624h-1.085 L205.524,129.781z M205.02,126.051h-1.111c-0.891,0-1.562,0.189-2.008,0.566c-0.445,0.376-0.669,0.938-0.669,1.687 c0,0.611,0.137,1.067,0.408,1.371c0.271,0.302,0.678,0.453,1.221,0.453c0.685,0,1.217-0.218,1.594-0.655 c0.377-0.436,0.565-1.027,0.565-1.776V126.051L205.02,126.051z"/>
+<path fill="#595959" d="M217.686,131.354h-1.994v-7.222c0-0.815-0.143-1.43-0.43-1.838c-0.284-0.409-0.718-0.612-1.288-0.612 c-0.722,0-1.282,0.273-1.682,0.821c-0.401,0.55-0.6,1.264-0.6,2.144v6.707h-1.991v-10.879h1.113l0.401,1.608 c0.692-1.179,1.747-1.768,3.161-1.768c1.104,0,1.933,0.289,2.482,0.87c0.551,0.58,0.828,1.447,0.828,2.6v7.568H217.686z"/>
+<path fill="#595959" d="M223.147,131.503c-0.85,0-1.469-0.197-1.862-0.594c-0.393-0.396-0.589-1.026-0.589-1.893v-7.24h-1.43 v-0.748l2.907-2.966h0.516v2.414h2.646v1.3h-2.646v6.912c0,0.591,0.096,0.982,0.289,1.174c0.194,0.191,0.487,0.283,0.879,0.283 c0.405,0,0.954-0.09,1.647-0.271v1.291C224.669,131.391,223.883,131.503,223.147,131.503z"/>
+<path fill="#595959" d="M245.155,131.354h-1.992v-7.493c0-0.724-0.135-1.268-0.407-1.633c-0.271-0.364-0.678-0.544-1.22-0.544 c-0.699,0-1.237,0.273-1.614,0.822c-0.377,0.547-0.566,1.263-0.566,2.143v6.707h-1.992v-7.493c0-0.722-0.139-1.268-0.415-1.631 c-0.277-0.365-0.693-0.546-1.248-0.546c-0.685,0-1.217,0.277-1.59,0.831c-0.371,0.556-0.561,1.267-0.561,2.134v6.707h-1.993 v-10.879h1.113l0.403,1.608c0.666-1.178,1.683-1.768,3.049-1.768c0.723,0,1.324,0.137,1.801,0.413 c0.478,0.276,0.828,0.687,1.053,1.236c0.617-1.099,1.605-1.646,2.965-1.646c1.072,0,1.879,0.288,2.415,0.869 c0.537,0.581,0.804,1.448,0.804,2.601v7.564h-0.004V131.354z"/>
+<path fill="#595959" d="M254.967,129.688v1.357c-0.979,0.306-1.991,0.458-3.039,0.458c-1.521,0-2.66-0.458-3.414-1.375 s-1.132-2.328-1.132-4.238c0-1.676,0.365-3.024,1.095-4.044c0.73-1.021,1.771-1.529,3.123-1.529c1.099,0,1.922,0.289,2.475,0.875 c0.553,0.583,0.905,1.296,1.063,2.141c0.154,0.848,0.235,1.85,0.235,3.017h-5.874c0,1.268,0.225,2.216,0.675,2.849 c0.449,0.631,1.123,0.948,2.02,0.948C252.951,130.146,253.877,129.994,254.967,129.688z M249.496,125.124h3.919 c0-1.315-0.156-2.245-0.468-2.787c-0.313-0.543-0.761-0.813-1.348-0.813c-0.654,0-1.152,0.281-1.5,0.842 S249.551,123.845,249.496,125.124z"/>
+<path fill="#595959" d="M264.714,129.688v1.357c-0.979,0.306-1.993,0.458-3.041,0.458c-1.521,0-2.659-0.458-3.414-1.375 c-0.754-0.917-1.131-2.328-1.131-4.238c0-1.676,0.366-3.024,1.095-4.044c0.729-1.021,1.771-1.529,3.124-1.529 c1.097,0,1.923,0.289,2.473,0.875c0.553,0.583,0.906,1.296,1.064,2.141c0.155,0.848,0.234,1.85,0.234,3.017h-5.875 c0,1.268,0.225,2.216,0.675,2.849c0.451,0.631,1.123,0.948,2.021,0.948C262.696,130.146,263.622,129.994,264.714,129.688z M259.241,125.124h3.92c0-1.315-0.157-2.245-0.469-2.787c-0.312-0.543-0.761-0.813-1.346-0.813c-0.656,0-1.153,0.281-1.5,0.842 C259.498,122.926,259.299,123.845,259.241,125.124z"/>
+<path fill="#595959" d="M270.11,131.503c-0.849,0-1.468-0.197-1.861-0.594c-0.394-0.396-0.589-1.026-0.589-1.893v-7.24h-1.432 v-0.748l2.909-2.966h0.514v2.414h2.647v1.3h-2.647v6.912c0,0.591,0.098,0.982,0.29,1.174c0.195,0.191,0.486,0.283,0.88,0.283 c0.406,0,0.954-0.09,1.646-0.271v1.291C271.632,131.391,270.846,131.503,270.11,131.503z"/>
+<path fill="#595959" d="M276.264,131.354h-1.991v-9.579h-1.242v-1.3h3.237v10.879H276.264z M275.273,116.66 c0.306,0,0.568,0.11,0.791,0.336c0.221,0.225,0.332,0.489,0.332,0.795c0,0.312-0.11,0.579-0.328,0.8 c-0.219,0.224-0.483,0.331-0.795,0.331c-0.318,0-0.588-0.107-0.806-0.331c-0.219-0.221-0.326-0.488-0.326-0.8 c0-0.318,0.108-0.586,0.326-0.804C274.688,116.768,274.955,116.66,275.273,116.66z"/>
+<path fill="#595959" d="M287.088,131.354h-1.994v-7.222c0-0.815-0.143-1.43-0.43-1.838c-0.284-0.409-0.718-0.612-1.288-0.612 c-0.722,0-1.282,0.273-1.682,0.821c-0.401,0.55-0.6,1.264-0.6,2.144v6.707h-1.991v-10.879h1.113l0.401,1.608 c0.692-1.179,1.747-1.768,3.161-1.768c1.104,0,1.933,0.289,2.482,0.87c0.551,0.58,0.828,1.447,0.828,2.6v7.568H287.088z"/>
+<path fill="#595959" d="M296.038,121.794l0.421-1.318h1.112v10.363c0,1.172-0.365,2.081-1.089,2.726 c-0.728,0.646-1.723,0.97-2.988,0.97c-1.035,0-2.211-0.165-3.526-0.496v-1.403c1.37,0.33,2.469,0.496,3.292,0.496 c0.718,0,1.241-0.133,1.576-0.397c0.334-0.266,0.542-0.611,0.622-1.039c0.081-0.426,0.121-1.033,0.121-1.817v-0.282 c-0.529,0.761-1.378,1.141-2.545,1.141c-1.24,0-2.169-0.428-2.792-1.285c-0.621-0.855-0.931-2.145-0.931-3.856 c0-1.64,0.343-2.931,1.027-3.868c0.686-0.937,1.678-1.409,2.976-1.409C294.564,120.316,295.472,120.808,296.038,121.794z M293.494,129.38c0.691,0,1.219-0.248,1.581-0.745c0.361-0.495,0.543-1.563,0.543-3.202c0-1.26-0.171-2.205-0.509-2.839 c-0.339-0.635-0.849-0.949-1.52-0.949c-0.718,0-1.265,0.272-1.642,0.813c-0.376,0.543-0.565,1.535-0.565,2.976 c0,1.317,0.175,2.303,0.529,2.96C292.261,129.051,292.789,129.38,293.494,129.38z"/>
+</g>
+<g>
+<g>
+<path d="M46.726,126.876v1.303h-1.086v11.785c0,0.852-0.232,1.513-0.695,1.985c-0.463,0.472-1.152,0.708-2.067,0.708 c-0.417,0-0.979-0.062-1.685-0.183v-1.312c0.596,0.105,1.021,0.157,1.276,0.157c0.452,0,0.782-0.114,0.991-0.345 c0.208-0.229,0.313-0.588,0.313-1.08v-11.719h-1.069v-1.301H46.726L46.726,126.876z"/>
+<path d="M53.57,138.366c-0.625,1.065-1.598,1.598-2.918,1.598c-0.92,0-1.637-0.259-2.149-0.776 c-0.513-0.52-0.77-1.243-0.77-2.177c0-0.96,0.263-1.677,0.791-2.15c0.527-0.473,1.158-0.767,1.893-0.887 c0.735-0.118,1.63-0.18,2.683-0.18v-1.19c0-1.175-0.628-1.763-1.885-1.763c-0.724,0-1.607,0.153-2.648,0.46v-1.294 c1.048-0.289,2.043-0.435,2.988-0.435c1.111,0,1.956,0.27,2.532,0.806c0.576,0.536,0.864,1.327,0.864,2.368v7.077h-1.007 L53.57,138.366z M53.1,134.901h-1.033c-0.828,0-1.45,0.175-1.863,0.525c-0.414,0.35-0.622,0.873-0.622,1.567 c0,0.568,0.126,0.992,0.378,1.272c0.251,0.281,0.63,0.422,1.133,0.422c0.636,0,1.13-0.202,1.481-0.608 c0.351-0.405,0.525-0.955,0.525-1.65V134.901z"/>
+<path d="M64.861,139.826H63.01v-6.706c0-0.759-0.132-1.325-0.399-1.707c-0.267-0.378-0.666-0.568-1.199-0.568 c-0.671,0-1.192,0.255-1.563,0.763c-0.371,0.509-0.556,1.173-0.556,1.989v6.227h-1.85v-10.102h1.034l0.373,1.495 c0.643-1.095,1.622-1.64,2.936-1.64c1.024,0,1.793,0.269,2.305,0.806c0.512,0.539,0.769,1.344,0.769,2.415V139.826z"/>
+</g>
+</g>
+<g>
+<path d="M56.101,107.645H45.277v-1.805h3.608V90.81l-3.608,0.802v-1.805l5.412-2.058h1.805v18.091h3.608L56.101,107.645 L56.101,107.645z"/>
+<path d="M62.595,94.843h0.562c1.799,0,3.18,0.531,4.142,1.59c0.962,1.061,1.443,2.581,1.443,4.558c0,2.253-0.53,3.942-1.59,5.07 c-1.06,1.127-2.645,1.689-4.756,1.689c-1.55,0-2.927-0.192-4.129-0.575v-1.965c1.327,0.401,2.552,0.602,3.675,0.602 c1.033,0,1.811-0.348,2.332-1.043c0.521-0.694,0.781-1.88,0.781-3.554c0-1.398-0.305-2.447-0.915-3.147 c-0.609-0.699-1.526-1.05-2.746-1.05c-0.812,0-1.617,0.051-2.418,0.148v-9.42h9.34v1.804h-5.718v5.292H62.595L62.595,94.843z"/>
+</g>
+</g>
+<path fill-opacity="0.6" stroke-opacity="0.6" d="M279.692,97.668c0.652-0.65,1.282-0.972,2.394-0.675l2.325-2.321 c1.686-1.689,4.214-2.034,6.252-1.05c0.712-0.509,1.71-0.451,2.346,0.189c0.638,0.641,0.697,1.635,0.192,2.348 c0.982,2.039,0.638,4.564-1.05,6.252l-2.324,2.324c0.297,1.117-0.021,1.738-0.675,2.395l-1.303,1.303l-2.711-2.711 c-1.063,0.469-2.377,0.202-3.313-0.73c-0.93-0.931-1.196-2.247-0.728-3.308l-2.709-2.713L279.692,97.668z"/>
+<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-4731.8066" y1="1311.5371" x2="-4729.7651" y2="1311.5371" gradientTransform="matrix(-0.7071 -0.7071 -0.7071 0.7071 -2125.7932 -4177.6152)">
+<stop offset="0" style="stop-color:#FFB533"/>
+<stop offset="0.24" style="stop-color:#FFE692"/>
+<stop offset="0.75" style="stop-color:#ED8C0D"/>
+<stop offset="1" style="stop-color:#FFB81F"/>
+</linearGradient>
+<path fill="url(#SVGID_17_)" d="M290.431,94.672l0.427-0.43c0.474-0.474,1.25-0.474,1.722,0c0.473,0.475,0.471,1.247,0,1.72 l-0.433,0.431L290.431,94.672z"/>
+<path fill-opacity="0.2" stroke-opacity="0.2" fill="#873900" d="M290.857,94.242c0.125-0.126,0.272-0.215,0.43-0.273 c0.303,0.199,0.593,0.436,0.86,0.703c0.27,0.268,0.503,0.559,0.706,0.864c-0.061,0.154-0.15,0.302-0.274,0.426l-0.432,0.431 l-1.717-1.721L290.857,94.242z"/>
+<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-4734.9648" y1="1316.7041" x2="-4726.8018" y2="1316.7041" gradientTransform="matrix(-0.7071 -0.7071 -0.7071 0.7071 -2125.7932 -4177.6152)">
+<stop offset="0" style="stop-color:#FFB533"/>
+<stop offset="0.24" style="stop-color:#FFE692"/>
+<stop offset="0.75" style="stop-color:#ED8C0D"/>
+<stop offset="1" style="stop-color:#FFB81F"/>
+</linearGradient>
+<path fill="url(#SVGID_18_)" d="M288.28,105.422l3.44-3.438c1.896-1.897,1.896-4.983,0-6.882c-1.897-1.896-4.983-1.896-6.882,0 l-3.438,3.441L288.28,105.422z"/>
+<path fill-opacity="0.4" stroke-opacity="0.4" fill="#FFFFFF" d="M291.721,95.102c1.896,1.895,1.896,4.983,0,6.882l-0.431,0.428 c1.895-1.896,1.895-4.981,0-6.879c-1.897-1.897-4.983-1.896-6.881,0l0.43-0.431C286.737,93.204,289.821,93.204,291.721,95.102z"/>
+<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-4736.0166" y1="1321.874" x2="-4725.8145" y2="1321.874" gradientTransform="matrix(-0.7071 -0.7071 -0.7071 0.7071 -2125.7932 -4177.6152)">
+<stop offset="0" style="stop-color:#FFB533"/>
+<stop offset="0.24" style="stop-color:#FFE692"/>
+<stop offset="0.75" style="stop-color:#ED8C0D"/>
+<stop offset="1" style="stop-color:#FFB81F"/>
+</linearGradient>
+<path fill="url(#SVGID_19_)" d="M282.259,97.683l6.88,6.879c0.416,1.166,0.115,1.604-0.415,2.139l-0.874,0.872l-8.599-8.6 l0.874-0.872C280.656,97.564,281.097,97.267,282.259,97.683z"/>
+<rect x="281.043" y="100.601" transform="matrix(-0.7073 -0.7069 0.7069 -0.7073 416.802 374.3882)" fill-opacity="0.2" stroke-opacity="0.2" fill="#873900" width="9.731" height="0.61"/>
+<rect x="277.69" y="102.749" transform="matrix(-0.7072 -0.707 0.707 -0.7072 411.6039 376.5563)" fill-opacity="0.1" stroke-opacity="0.1" fill="#753200" width="12.161" height="0.608"/>
+<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-4730.7529" y1="1325.2188" x2="-4730.7529" y2="1323.4556" gradientTransform="matrix(-0.7071 -0.7071 -0.7071 0.7071 -2125.7932 -4177.6152)">
+<stop offset="0" style="stop-color:#F56700"/>
+<stop offset="1" style="stop-color:#EF2D00"/>
+</linearGradient>
+<path fill="url(#SVGID_20_)" d="M285.243,104.968c-0.849,0.609-2.118,0.461-2.984-0.406c-0.864-0.866-1.015-2.136-0.403-2.983 L285.243,104.968z"/>
+<path fill-opacity="0.4" stroke-opacity="0.4" fill="#753200" d="M281.578,102.163c0.062-0.208,0.147-0.408,0.277-0.585 l3.388,3.39c-0.178,0.126-0.375,0.214-0.583,0.275L281.578,102.163z"/>
+<path fill-opacity="0.5" stroke-opacity="0.5" fill="#FFF6C9" d="M289.331,105.611l-8.122-8.12 c0.277-0.021,0.611,0.034,1.05,0.192l6.882,6.879C289.296,105.002,289.351,105.338,289.331,105.611z"/>
+<rect x="276.943" y="91.632" fill="none" width="18.245" height="18.244"/>
+</g>
+<rect fill="none" width="320" height="210"/>
+</svg>
--- a/calendarwidgetplugin/tsrc/matti_testcases/Calendar_widget_tests.rb Fri Sep 17 08:27:22 2010 +0300
+++ b/calendarwidgetplugin/tsrc/matti_testcases/Calendar_widget_tests.rb Mon Oct 04 00:05:38 2010 +0300
@@ -17,13 +17,16 @@
# require needed Ruby, MATTI and Orbit files
require 'test/unit'
+require 'gruff'
require 'tdriver'
require 'date'
+#require "rexml/document"
#require 'parsedate'
#require 'OrbitBehaviours'
include MobyBase
include MobyUtil
include MattiVerify
+#include REXML
@@z_index = ""
@@ -96,6 +99,7 @@
app_name = (app_name == 'tsapplication') ? 'hsapplication' : app_name
if @sut.application(:name => app_name).test_object_exists?("HbIconItem", {:iconName => 'qtg_mono_applications_all', :__timeout => 2})
navigate_to_first_homescreen
+ remove_calendar_widgets_from_homescreen(0)
delete_calendar_events_via_UI
else
app = @sut.application.executable_name
@@ -123,8 +127,17 @@
app_name = app.split(".exe")[0].to_s
app_name = (app_name == 'tsapplication') ? 'hsapplication' : app_name
navigate_to_first_homescreen
+ remove_calendar_widgets_from_homescreen(0)
delete_calendar_events_via_UI
end
+ #check do we have network time in use. If not, set it on
+ #clock_app = @sut.run(:name => "clock.exe")
+ #clock_app.HbMarqueeItem(:text => 'Clock').tap
+ #clock_app.HbTextItem( :text => 'Settings' ).tap
+ #if clock_app.HbCheckBox( :name => 'networkTime' ).test_object_exists?("HbIconItem",{:iconName => 'qtg_small_unselected'}) then
+ # clock_app.HbCheckBox( :name => 'networkTime' ).tap
+ #end
+ #clock_app.close
rescue Exception => ex
puts "TEARDOWN FAILED. ERROR:"
puts ex.message
@@ -140,6 +153,7 @@
app_name = @sut.application.executable_name.split(".exe")[0].to_s
puts "Application on the screen is " + app_name
navigate_to_first_homescreen
+ remove_calendar_widgets_from_homescreen(0)
delete_calendar_events_via_UI
end
rescue Exception => e
@@ -175,9 +189,47 @@
element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
item_count = element_set.size
#puts "item_count = ",item_count
- item_index = 4
- #lets check if calendar widget is visible on display. If not, we flick until we get it visible
- while item_index < item_count
+ item_index = 6
+ widget_row_array = Array.new
+ widget_y_pos_array = Array.new
+ i = 0
+ index = 0
+ widget_row_string = String.new(element_set.to_s)
+ while not(app.test_object_exists?("HbTextItem",{:text => 'CalendarWidget',:visibleOnScreen => 'true'}) )
+ while index != nil
+ index = widget_row_string.index('row')
+ if index == nil
+ break
+ end
+ row_length = widget_row_string.index('<', index.to_i+19)-(index.to_i+19)
+ #puts "row_length = " +row_length.to_s
+ widget_row = widget_row_string[index.to_i+19..index.to_i+19+row_length.to_i-1]
+ #puts "widget_row: " + widget_row.to_s
+ #find scenepos
+ index = widget_row_string.index('scenePos', index+19)
+ y_pos_length = widget_row_string.index('<', index.to_i+26)-(index.to_i+26)
+ widget_y_pos = widget_row_string[index.to_i+26..index.to_i+26+y_pos_length-1]
+ #puts "widget_y_pos: " + widget_y_pos.to_s
+ if widget_y_pos.to_i > 0 && widget_y_pos.to_i < 530 then
+ widget_row_array[i]=widget_row
+ #puts "widget_row_array[i] = " + widget_row.to_s
+ widget_y_pos_array[i]=widget_y_pos
+ #puts "widget_y_pos_array[i] = " + widget_y_pos.to_s
+ i = i +1
+ end
+ widget_row_string = widget_row_string[index.to_i+26+y_pos_length..widget_row_string.length]
+ end
+ #find the lowest y_pos item
+ lowest_y_pos = widget_y_pos_array[0].to_i
+ lowest_value = 0
+ for k in 0..i-1
+ if lowest_y_pos.to_i < widget_y_pos_array[k+1].to_i
+ lowest_y_pos = widget_y_pos_array[k+1].to_i
+ lowest_value = k+1
+ end
+ end
+ #puts "lowest_y_pos = " + lowest_y_pos.to_s
+ app.HsListViewItem(:row => widget_row_array[lowest_value].to_s).gesture(:Up,1,500,{:Left,true})
if app.test_object_exists?("HbTextItem",{:text => 'CalendarWidget',:visibleOnScreen => 'true'}) then
if browse_to_list == 'longpressHS' then
app.HbTextItem(:text => 'CalendarWidget').tap
@@ -187,20 +239,14 @@
app.HbIconItem(:iconName => 'qtg_mono_back').tap
end
break
- else
- app.HsListViewItem(:__index => item_index-1).gesture(:Up,1,550,{:Left,true})
end
- item_index +=2
- if item_index >= item_count then
- identificator = TestObjectIdentificator.new(:type => :HsListViewItem)
- xml = app.HbListView(:__index => 0).xml_data
- element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
- item_count = element_set.size
- #puts "item_count = ",item_count
- item_index = 4
- end
+ identificator = TestObjectIdentificator.new(:type => :HsListViewItem)
+ xml = app.HbListView(:__index => 0).xml_data
+ element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
+ i = 0
+ widget_row_string = String.new(element_set.to_s)
+ index = widget_row_string.index('row')
end
-
#if browse_to_list != 'longpressHS' then
# app.HbIconItem(:iconName => 'qtg_mono_back').tap
#end
@@ -303,58 +349,58 @@
#
########################################################################################################################################
- def calculate_date(day, month, year, hour, minute)
+ def calculate_date(temp_day, temp_month, temp_year, temp_hour, temp_minute)
#let's check the minute
- if(minute >=60) then
- minute = minute - 60
- hour= hour +1
+ if(temp_minute >=60) then
+ temp_minute = temp_minute - 60
+ temp_hour= temp_hour +1
end
- if(hour >=24) then
- hour = hour - 24
- day = day +1
+ if(temp_hour >=24) then
+ temp_hour = temp_hour - 24
+ temp_day = temp_day +1
end
- if(day > 31) then
- if(month == 1)||(month == 3)||(month == 5)||(month == 7)||(month == 8)||(month == 10)||(month == 12) then
- month = month +1
- day = day - 31
- elsif(month == 4)||(month == 6)||(month == 9)||(month == 11) then
- month = month +1
- day = day - 30
- elsif(month == 2) then
- if ( year % 100 != 0 && year % 4 == 0 || year % 400 == 0 ) then
- month = month +1
- day = day -29
+ if(temp_day > 31) then
+ if(temp_month == 1)||(temp_month == 3)||(temp_month == 5)||(temp_month == 7)||(temp_month == 8)||(temp_month == 10)||(temp_month == 12) then
+ temp_month = temp_month +1
+ temp_day = temp_day - 31
+ elsif(temp_month == 4)||(temp_month == 6)||(temp_month == 9)||(temp_month == 11) then
+ temp_month = temp_month +1
+ temp_day = temp_day - 30
+ elsif(temp_month == 2) then
+ if ( temp_year % 100 != 0 && temp_year % 4 == 0 || temp_year % 400 == 0 ) then
+ temp_month = temp_month +1
+ temp_day = temp_day -29
else
- month = month +1
- day = day - 28
+ temp_month = temp_month +1
+ temp_day = temp_day - 28
end
end
end
- if(month > 12) then
- month = month - 12
- year = year +1
+ if(temp_month > 12) then
+ temp_month = temp_month - 12
+ temp_year = temp_year +1
end
- if(day <10) then
- returnday = '0'+day.to_s
+ if(temp_day <10) then
+ returnday = '0'+temp_day.to_s
else
- returnday = day.to_s
+ returnday = temp_day.to_s
end
- if(month < 10) then
- returnmonth = '0' + month.to_s
+ if(temp_month < 10) then
+ returnmonth = '0' + temp_month.to_s
else
- returnmonth = month.to_s
+ returnmonth = temp_month.to_s
end
- if(minute < 10) then
- returnminute = '0'+minute.to_s
+ if(temp_minute < 10) then
+ returnminute = '0'+temp_minute.to_s
else
- returnminute = minute.to_s
+ returnminute = temp_minute.to_s
end
- if(hour < 10) then
- returnhour = '0'+hour.to_s
+ if(temp_hour < 10) then
+ returnhour = '0'+temp_hour.to_s
else
- returnhour = hour.to_s
+ returnhour = temp_hour.to_s
end
- return returnday,'-',returnmonth,'-',year.to_s,' ',returnhour,':',returnminute,':00'
+ return returnday,'-',returnmonth,'-',temp_year.to_s,' ',returnhour,':',returnminute,':00'
end
########################################################################################################################################
@@ -466,6 +512,54 @@
########################################################################################################################################
#
+ # remove_calendar_widgets_from_homescreen
+ #
+ # description:
+ # This function removes all calendar widgets from homescreen
+ #
+ # preconditions:
+ # -Phone is in homescreen and there is calendar widget in HS
+ # parameters:
+ # hs_pagenumber: Number of the homescreen page (0, 1 or 2)
+ #
+ # created: Jarno Mäkelä
+ # creation date: 01-Sep-2010
+ #
+ ########################################################################################################################################
+
+ def remove_calendar_widgets_from_homescreen(hs_pagenumber)
+ #Lets check all widgets in first page
+ app = @sut.application(:name => 'hsapplication')
+ identificator = TestObjectIdentificator.new(:type => :HsWidgetHostVisual)
+ xml = app.HsPageVisual(:__index => hs_pagenumber).xml_data
+ element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
+ widget_string = String.new(element_set.to_s)
+ #lets find all the calendarwidgetplugin-named calendar widgets
+ cal_widget_array = Array.new
+ i = 0
+ index = 0
+ while index != nil do
+ #search first occurence of calendar widget plugin
+ index = widget_string.index('calendarwidgetplugin')
+ if index != nil then
+ #save the name of calendar widget to array
+ cal_widget_array[i]=widget_string[index.to_i..index.to_i+22]
+ puts "cal_widget_array[i] ="+ cal_widget_array[i].to_s
+ i = i +1
+ #put the rest of the string to be checked another calendarwidgetplugin-name
+ widget_string = widget_string[index.to_i+22..widget_string.length]
+ end
+ end
+ #Delete calendar widgets
+ for j in 0..cal_widget_array.length-1
+ app.HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).tap_down
+ app.HsIdleWidget.HbWidget( :name => 'controlLayer' ).HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).drag_to(150,560 )
+ sleep 1
+ end
+ end
+
+ ########################################################################################################################################
+ #
# delete_calendar_events !!!FIXTURE NOT WORKING !!!
#
# description:
@@ -751,7 +845,7 @@
start_minute = 0
end
start_date = calculate_date(start_day, start_month, start_year, start_hour, start_minute)
- puts "start_date:",start_date.to_s
+ puts "start_date:",start_date.to_s
start_time_split = (start_date.to_s).split
start_time = start_time_split[1]
start_time_to_verify = start_time[0..4]
@@ -810,14 +904,83 @@
when "11" then "Nov"
when "12" then "Dec"
end
- puts "time_to_verify:", start_date[0..1]+' '+month_text+' '+time_to_verify
- return start_date[0..1]+' '+month_text+' '+time_to_verify
+ puts "time_to_verify:", start_date[0..1]+' '+month_text+' - '+start_time_to_verify
+ return start_date[0..1]+' '+month_text+' - '+start_time_to_verify
else
puts "time_to_verify:", time_to_verify
return time_to_verify
end
end
+ ########################################################################################################################################
+ #
+ # create_all_day_event_via_calendar
+ #
+ # description:
+ # This function creates all day calendar event via calendar application UI
+ #
+ # preconditions:
+ #
+ # parameters:
+ # -subject: subject of the meeting (not working yet)
+ # -start_day: start day of the meeting(not working yet)
+ # -start_month: start month of the meeting(not working yet)
+ # -start_year: start year of the meeting(not working yet)
+ #
+ # return value:
+ # -date_to_verify: all day event date, that is supposed to be in the calendar widget (Format: dd mmm)
+ #
+ # created: Jarno Mäkelä
+ # creation date: 24-Aug-2010
+ #
+ ########################################################################################################################################
+
+ def create_all_day_event_via_calendar(subject,start_day, start_month, start_year)
+ #Creates all day calendar event via calendar application
+ #let's calculate the real values of start date. In parameters, eg. the day value can exceed 31, so we need to change month and set day
+ #to 1. Same calculation needed for other parameter values
+ all_day_date = calculate_date(start_day, start_month, start_year, 0,0)
+ puts "all_day_date:",all_day_date.to_s
+ all_day_date_split = (all_day_date.to_s).split
+ cal_app = @sut.run(:name => "calendar.exe")
+ #cal_app.HbIconItem(:iconName => 'qtg_mono_options_menu').tap
+ cal_app.HbMarqueeItem(:text => 'Calendar').tap
+ cal_app.HbTextItem(:text => 'New entry').tap
+ #Add the subject. Cannot do this currently,since phone won't go away from text input
+ #cal_app.HbLineEdit( :name => 'subjectItem' ).tap
+ #cal_app.HbLineEdit( :name => 'subjectItem' ).HbScrollArea.HbWidget.type_text(subject)
+ #cal_app.QGraphicsWidget( :name => 'vkbHandle' ).tap
+ #Tap all day event option
+ cal_app.HbCheckBox( :name => 'allDayItem' ).tap
+ start_date = all_day_date_split[0]
+ #add start date
+ if start_date[0..1].to_i > @day.to_i || start_date[3..4].to_i > @month.to_i || start_date[6..9].to_i > @year.to_i then
+ puts "calendar event is in another day that today in future"
+ #set calendar date
+ cal_app.HbPushButton( :name => 'startDate' ).tap
+ set_event_date_via_UI(cal_app,start_date)
+ cal_app.HbTextItem( :text => 'OK' ).tap
+ end
+ cal_app.HbIconItem(:iconName => 'qtg_mono_back').tap
+ cal_app.close
+ month_text = case start_date[3..4]
+ when "01" then "Jan"
+ when "02" then "Feb"
+ when "03" then "Mar"
+ when "04" then "Apr"
+ when "05" then "May"
+ when "06" then "Jun"
+ when "07" then "Jul"
+ when "08" then "Aug"
+ when "09" then "Sep"
+ when "10" then "Oct"
+ when "11" then "Nov"
+ when "12" then "Dec"
+ end
+ puts "date_to_verify:", start_date[0..1]+' '+month_text
+ return start_date[0..1]+' '+month_text
+ end
+
##############################################################################################################################################
# Calendar widget - initialize
##############################################################################################################################################
@@ -969,8 +1132,53 @@
#
############################################################################################################################################
- def _test_calendar_widget_one_all_day_event_and_one_other_timed_event_overlapping
-
+ def test_calendar_widget_one_all_day_event_and_one_other_timed_event_overlapping
+ #Preconditions
+ # Device is in Home Screen.
+ app = @sut.application(:name => 'hsapplication')
+ #verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ #One all day event and one timed event happens few hours after current phone time at today in Calendar.
+ check_phone_date
+ check_phone_time
+ all_day_event_time_for_verification = create_all_day_event_via_calendar("not working all day",@day.to_i,@month.to_i,@year.to_i)
+ today_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,1,0)
+ #Calendar widget is added to Home Screen.
+ #Not adding calendar widget, if it already exists there
+ if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
+ #add calendar widget to home screen
+ app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ add_calendar_widget_to_homescreen(app,'AppListButton')
+ end
+ #Step 1: Check calendar widget
+ #Step 1 Expected:
+ #widget icon is shown correctly.
+ verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'iconContainer' ).HbLabel( :name => 'iconLabel' )}
+ #reminder icon is not shown
+ if (app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ end
+ #Calendar widget shows overlapping information as two rows: first row shows the current date and second row shows the text '2 overlapping entries'
+ verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 0 ).HbTextItem( :text => all_day_event_time_for_verification )}
+ verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 1 ).HbTextItem( :text => '2 overlapping entry' )}
+ #Step 2: Tap calendar widget and remove the timed event from calendar
+ #!!!!! Cannot do yet below
+# app.HbTextItem( :text => '2 overlapping entry' ).tap
+ #Step 2 expected: timed event can be removed
+
+ #Step 3: Check Calendar widget.
+ #Step 3 Expected:
+ #- All icons (widget icon and reminder icon) are shown correctly.
+ #!!!!! Cannot run yet below
+ #verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'iconContainer' ).HbLabel( :name => 'iconLabel' )}
+ #!!!!! Cannot run yet below
+ #if not (app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ # raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ #end
+ #- Calendar widget shows rows: first row shows the date and second row shows the name of all day event .
+ #!!!!! Cannot run yet below
+ #verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 0 ).HbTextItem( :text => all_day_event_time_for_verification )}
+ #verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 1 ).HbTextItem( :text => 'Unnamed' )}
+ delete_calendar_events_via_UI
end
##############################################################################################################################################
@@ -1019,8 +1227,9 @@
#- Only today event is shown in widget as two rows: first row shows the event time and second row shows the event title.
day_to_verify = @day.to_i
verify(){app.HbTextItem(:text => day_to_verify)}
- verify(){app.HbLabel( :name => 'upperLabel' ).HbTextItem( :text => today_time_for_verification )}
- verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
+ verify(){app.HbLabel( :name => 'upperLabelShort' ).HbTextItem( :text => today_time_for_verification )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel(:name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
#Verify, that reminder icon in widget is shown
if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
@@ -1060,58 +1269,6 @@
#
############################################################################################################################################
- def test_calendar_widget_overlapping_events
- #Preconditions:
- #Device is in Homescreen
- app = @sut.application(:name => 'hsapplication')
- verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
- #- One event happens few hours after current phone time at today in Calendar.
- check_phone_date
- check_phone_time
- today_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
- #-Calendar widget is added to Home Screen.
- #Not adding calendar widget, if it already exists there
- if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
- #add calendar widget to home screen
- app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
- add_calendar_widget_to_homescreen(app,'AppListButton')
- end
- #Step 1:Check Calendar widget.
- #step 1 Expected: - All icons (widget icon and reminder icon) are shown correctly.
- #- Calendar widget shows the event as two rows: first row show the event time and second row shows the event title.
- day_to_verify = @day.to_i
- verify(){app.HbTextItem(:text => day_to_verify)}
- verify(){app.HbLabel( :name => 'upperLabel' ).HbTextItem( :text => today_time_for_verification )}
- verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
- #Verify, that reminder icon in widget is shown
- if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
- raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
- end
-
- #Step 2:Create another event overlapping the first event in Calendar.
- another_time_for_verification = create_calendar_event_via_calendar("Another not working",@day.to_i,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
- #Step 3:Return to Home Screen and check Calendar widget.
- #Step 3 Expected: - All icons (widget icon and reminder icon) are shown correctly.
- #- Calendar widget shows the overlapping information as two rows: first row shows overlapping time and second row shows text
- #'2 events overlapping'.
- if @hourformat_12 == true then
- overlapping_time_for_verification = today_time_for_verification[0..7]+'-'+another_time_for_verification[9..16]
- else
- overlapping_time_for_verification = today_time_for_verification[0..4]+'-'+another_time_for_verification[6..10]
- end
- puts "overlapping_time_for_verification: ",overlapping_time_for_verification
- verify(){app.HbLabel( :name => 'upperLabel' ).HbTextItem( :text => overlapping_time_for_verification )}
- verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => '2 overlapping entry' )}
- #Step 4: Tap the overlapping events part in calendar view
- app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => '2 overlapping entry' ).tap
- #Step 4 Expected: - Phone goes to calendar agenda view with all events visible.
- #ToDo
- # !! NOT WORKING IN week 30 SW !!
- # - The date is same as the event date.
- #ToDo
- delete_calendar_events_via_UI
- end
-
def test_calendar_widget_overlapping_events_fixed
#Preconditions:
#Device is in Homescreen
@@ -1133,6 +1290,10 @@
#- Calendar widget shows the event as two rows: first row show the event time and second row shows the event title.
day_to_verify = @day.to_i
verify(){app.HbTextItem(:text => day_to_verify)}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :__index => 0 ).HbTextItem( :text => today_time_for_verification )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :__index => 1 ).HbTextItem( :text => 'Unnamed' )}
#Verify, that reminder icon in widget is shown
if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
@@ -1143,14 +1304,25 @@
#Step 3:Return to Home Screen and check Calendar widget.
#Step 3 Expected: - All icons (widget icon and reminder icon) are shown correctly.
#- Calendar widget shows the overlapping information as two rows: first row shows overlapping time and second row shows text
- #'2 events overlapping'.
+ #'2 overlapping entry'.
if @hourformat_12 == true then
overlapping_time_for_verification = today_time_for_verification[0..7]+'-'+another_time_for_verification[9..16]
else
overlapping_time_for_verification = today_time_for_verification[0..4]+'-'+another_time_for_verification[6..10]
end
puts "overlapping_time_for_verification: ",overlapping_time_for_verification
- verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => '2 overlapping entry' )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'upperLabelLong' ).HbTextItem( :text => overlapping_time_for_verification )}
+ verify(){app.HbLabel(:name => 'lowerLabel' ).HbTextItem( :text => '2 overlapping entry' )}
+ #Step 4: Tap the overlapping events part in calendar view
+ #!!!!! Cannot run yet below
+ #app.HbLabel( :__index => 1 ).HbTextItem( :text => '2 overlapping entry' ).tap
+ #!!!!! Cannot do yet below
+ #Step 4 Expected: - Phone goes to calendar agenda view with all events visible.
+ #ToDo
+ # !! NOT WORKING IN week 30 SW !!
+ # - The date is same as the event date.
+ #ToDo
delete_calendar_events_via_UI
end #test_calendar_widget_overlapping_events_fixed
@@ -1194,8 +1366,9 @@
#Step 1 Expected:
#- Calendar agenda view is opened.
#- The date is same as the event date.
- cal_app = @sut.application(:name => 'calendar')
- verify(){cal_app.CalenAgendaView( :name => 'agendaView' )}
+ #!!!!! Cannot run yet below
+ #cal_app = @sut.application(:name => 'calendar')
+ #verify(){cal_app.CalenAgendaView( :name => 'agendaView' )}
#Error in SW, cannot verify date yet, since shows no date
#postactions
delete_calendar_events_via_UI
@@ -1222,70 +1395,50 @@
############################################################################################################################################
def test_calendar_widget_no_events
- #running_round = 1
- #max_running_rounds = 2
- #begin
- #preconditions:
- #-Device is in Home Screen
- app = @sut.application(:name => 'hsapplication')
- #verify(){@sut.application(:name => 'hsapplication').HbIconItem(:iconName => 'qtg_mono_applications_all')}
- verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
- #navigate_to_first_homescreen
- #-Calendar widget is added to Home Screen.
- #Not adding calendar widget, if it already exists there
- if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
- #add calendar widget to home screen
- app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
- add_calendar_widget_to_homescreen(app,'AppListButton')
- end
- #ToDo:Checking, that there are no events in calendar
+ #preconditions:
+ #-Device is in Home Screen
+ app = @sut.application(:name => 'hsapplication')
+ #verify(){@sut.application(:name => 'hsapplication').HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ #navigate_to_first_homescreen
+ #-Calendar widget is added to Home Screen.
+ #Not adding calendar widget, if it already exists there
+ if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
+ #add calendar widget to home screen
+ app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ add_calendar_widget_to_homescreen(app,'AppListButton')
+ end
+ #ToDo:Checking, that there are no events in calendar
- #step 1: Check Calendar widget
- #Verify, that calendar widget shows current date
- check_phone_date
- month_in_view = case @month
- when "01" then "January"
- when "02" then "February"
- when "03" then "March"
- when "04" then "April"
- when "05" then "May"
- when "06" then "June"
- when "07" then "July"
- when "08" then "August"
- when "09" then "September"
- when "10" then "October"
- when "11" then "November"
- when "12" then "December"
- end
- day_to_verify = @day.to_i
- verify(){app.HbTextItem(:text => day_to_verify)}
- verify(){app.HbTextItem(:text => month_in_view)}
- #Calendar widget content contains "No event for next 7 days"
- verify(){app.HbTextItem(:text => 'No entries for 7 days')}
-
- #Verify, that reminder icon in widget is not shown
- if (app.test_object_exists?("HbIconItem",{:iconName => 'images/bell.PNG'})) then
- raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
- end
- #Remove calendar widget from display
- remove_calendar_widget_from_homescreen(0)
- #rescue
- # if (running_round < max_running_rounds) then
- # running_round = running_round + 1
- # puts "Some error came during run. Lets try again"
- # teardown
- # retry
- # else
- # puts "Test failed"
- # raise
- # end
- #end #rescue
+ #step 1: Check Calendar widget
+ #Verify, that calendar widget shows current date
+ check_phone_date
+ month_in_view = case @month
+ when "01" then "January"
+ when "02" then "February"
+ when "03" then "March"
+ when "04" then "April"
+ when "05" then "May"
+ when "06" then "June"
+ when "07" then "July"
+ when "08" then "August"
+ when "09" then "September"
+ when "10" then "October"
+ when "11" then "November"
+ when "12" then "December"
+ end
+ day_to_verify = @day.to_i
+ verify(){app.HbTextItem(:text => day_to_verify)}
+ verify(){app.HbTextItem(:text => month_in_view)}
+ #Calendar widget content contains "No event for next 7 days"
+ verify(){app.HbTextItem(:text => 'No entries for 7 days')}
+
+ #Verify, that reminder icon in widget is not shown
+ if (app.test_object_exists?("HbIconItem",{:iconName => 'images/bell.PNG'})) then
+ raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ end
end #test_calendar_widget_no_events
- def _test_create_meeting
- create_calendar_event_via_calendar('Meeting 1')
- end
-
################################################################################################################################################
###
### BAT cases end. User story related FuTe cases start
@@ -1313,77 +1466,437 @@
#
############################################################################################################################################
- def _test_calendar_widget_One_upcoming_event_in_7_day_away_and_one_in_8_day_away
- #running_round = 1
- #max_running_rounds = 2
- #begin
- #preconditions:
- #-Device is in Home Screen
- app = @sut.application(:name => 'hsapplication')
- verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
- navigate_to_first_homescreen
- #-One event at 7 days away and one event at 8 days away in Calendar
- check_phone_date
- check_phone_time
- seventh_day_time_for_verification = create_calendar_event(app, '7th day meeting',@day.to_i+7,@month.to_i,@year.to_i,@hour.to_i,@minute.to_i,0,1,0)
- eight_day_time_for_verification = create_calendar_event(app, '8th day meeting',@day.to_i+8,@month.to_i,@year.to_i,@hour.to_i,@minute.to_i,0,1,0)
- #-Calendar widget is added to Home Screen.
- #Not adding calendar widget, if it already exists there
- if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
- #add calendar widget to home screen
- app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
- add_calendar_widget_to_homescreen(app,'AppListButton')
- end
- #step 1: Check Calendar widget
- #step 1 expected:
- #- All icons (widget icon and reminder icon) are shown correctly.
- #Verify, that reminder icon in widget is not shown. Cannot be verified currently, since fixture creating calendar event does not
- #have reminders
- #if not(app.test_object_exists?("HbIconItem",{:iconName => 'images/bell.PNG'})) then
- # raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should not be there", caller
- #end
- #- Only event at 7 days away is shown in widget as two rows: first row shows the event date and title, second row shows the text 'No calendar entries today'.
- #Verify, that calendar widget shows current date
- month_in_view = case @month
- when 1 then "January"
- when 2 then "February"
- when 3 then "March"
- when 4 then "April"
- when 5 then "May"
- when 6 then "June"
- when 7 then "July"
- when 8 then "August"
- when 9 then "September"
- when 10 then "October"
- when 11 then "November"
- when 12 then "December"
- end
- day_to_verify = @day.to_i
- verify(){app.HbTextItem(:text => day_to_verify)}
- verify(){app.HbTextItem(:text => month_in_view)}
- #- Only event at 7 days away is shown in widget as two rows: first row shows the event date and title, second row shows the text 'No calendar entries today'.
- seventh_date_for_verification = verify(){app.HbLabel( :name => 'upperLabel' ).HbTextItem( :text => seventh_day_time_for_verification+' 7th day meeting' )}
- #Remove calendar widget from display
- #remove_calendar_widget_from_homescreen(0)
- #rescue
- # if (running_round < max_running_rounds) then
- # running_round = running_round + 1
- # puts "Some error came during run. Lets try again"
- # teardown
- # retry
- # else
- # puts "Test failed"
- # raise
- # end
- #end #rescue
+ def test_calendar_widget_One_upcoming_event_in_7_day_away_and_one_in_8_day_away
+ #preconditions:
+ #-Device is in Home Screen
+ app = @sut.application(:name => 'hsapplication')
+ verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ #-One event at 7 days away and one event at 8 days away in Calendar
+ check_phone_date
+ check_phone_time
+ seventh_day_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i+7,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
+ eight_day_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i+8,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
+ #-Calendar widget is added to Home Screen.
+ #Not adding calendar widget, if it already exists there
+ if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
+ #add calendar widget to home screen
+ app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ add_calendar_widget_to_homescreen(app,'AppListButton')
+ end
+ #step 1: Check Calendar widget
+ #step 1 expected:
+ #- All icons (widget icon and reminder icon) are shown correctly.
+ verify(){app.HbLabel( :name => 'iconLabel' )}
+ #Verify, that reminder icon in widget is shown
+ #!!! Cannot run this yet
+ #if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ # raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ #end
+ #Verify, that calendar widget shows current date
+ month_in_view = case @month
+ when "01" then "January"
+ when "02" then "February"
+ when "03" then "March"
+ when "04" then "April"
+ when "05" then "May"
+ when "06" then "June"
+ when "07" then "July"
+ when "08" then "August"
+ when "09" then "September"
+ when "10" then "October"
+ when "11" then "November"
+ when "12" then "December"
+ end
+ day_to_verify = @day.to_i
+ verify(){app.HbTextItem(:text => day_to_verify)}
+ verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'iconContainer' ).HbLabel( :name => 'month' ).HbTextItem(:text => month_in_view)}
+ #- Only event at 7 days away is shown in widget as two rows: first row shows the event date, second row shows the event title.
+ #!! Cannot run this yet
+ #verify(){app.HbLabel( :name => 'upperLabelShort' ).HbTextItem( :text => seventh_day_time_for_verification)}
+ #!! Cannot run this yet
+ #verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => "Unnamed")}
+ #Step 2: Remove 7 days away meeting from calendar and check calendar widget
+ #!! Cannot do this yet. Tapping event won't go to calendar view
+ #Step 2 Expected:
+ #- All icons (widget icon and reminder icon) are shown correctly.
+ #!! Cannot run this yet
+ #verify(){app.HbLabel( :name => 'iconLabel' )}
+ #Verify, that reminder icon in widget is shown
+ #!! Cannot run this yet
+ #if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ # raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ #end
+ #- text "No entries for next 7 days" is showing
+ #!! Cannot run this yet
+ #verify(){app.HbTextItem(:text => 'No entries for 7 days')}
+ #postactions
+ delete_calendar_events_via_UI
end #test_calendar_widget_One_upcoming_event_in_7_day_away_and_one_in_8_day_away
+
+ ##############################################################################################################################################
+ # Calendar widget - reminder icon
+ ##############################################################################################################################################
+ #
+ # Purpose of this test case is to check, that there is seen reminder-icon in calendar widget for events, that have reminder
+ #
+ # Created at: 25.08.2010
+ # Created by: Jarno Mäkelä
+ # Reviewed by:
+ #
+ # === preconditions
+ # - Device is in Home Screen.
+ # - One event happens few hours after current phone time at today in Calendar and reminder is set on.
+ # - Calendar widget is added to Home Screen.
+ #
+ # === params
+ # none
+ #
+ ############################################################################################################################################
+
+ def test_calendar_widget_reminder_icon
+ #Preconditions:
+ #Device is in Homescreen
+ app = @sut.application(:name => 'hsapplication')
+ verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ #- One event happens few hours after current phone time at today in Calendar and reminder is set on.
+ check_phone_date
+ check_phone_time
+ today_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
+ #-Calendar widget is added to Home Screen.
+ #Not adding calendar widget, if it already exists there
+ if not(app.test_object_exists?("HbWidget",{:name => 'CalendarWidget'})) then
+ #add calendar widget to home screen
+ app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ add_calendar_widget_to_homescreen(app,'AppListButton')
+ end
+ #Step 1:Check Calendar widget.
+ #step 1 Expected: - All icons (widget icon and reminder icon) are shown correctly.
+ #- Calendar widget shows the event as two rows: first row show the event time and second row shows the event title.
+ day_to_verify = @day.to_i
+ verify(){app.HbTextItem(:text => day_to_verify)}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'upperLabelShort' ).HbTextItem( :text => today_time_for_verification )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
+ #Verify, that reminder icon in widget is shown
+ if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ end
+ #Step 2:Change reminder set to off in Calendar.
+ #!!!!!!!!!!!!!!!!!!!!!Cannot do yet, since tapping the calendar widget won't take to calendar agenda view
+ #Step 2 Expected: Reminder is set to off.
+ #Step 3: Check Calendar widget.
+ #Step 3 Expected:
+ #- Reminder icon is not shown.
+ #- The event is shown correctly.
+ #!!!!! Cannot run yet below
+ #if (app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ # raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ #end
+ day_to_verify = @day.to_i
+ verify(){app.HbTextItem(:text => day_to_verify)}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'upperLabelShort' ).HbTextItem( :text => today_time_for_verification )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
+
+ #Step 4: Create an event overlapping the previous event and set reminder on.
+ #Step 4 Expected: The event is created with reminder on.
+ another_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,0,0)
+
+ #Step 5: Check Calendar widget.
+ #Step 5 Expected:
+ #- Reminder icon is not shown .
+ if (app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ end
+ #- The overlapping information is shown in content.
+ if @hourformat_12 == true then
+ overlapping_time_for_verification = today_time_for_verification[0..7]+'-'+another_time_for_verification[9..16]
+ else
+ overlapping_time_for_verification = today_time_for_verification[0..4]+'-'+another_time_for_verification[6..10]
+ end
+ puts "overlapping_time_for_verification: ",overlapping_time_for_verification
+ verify(){app.HbLabel( :name => 'upperLabelLong' ).HbTextItem( :text => overlapping_time_for_verification )}
+ verify(){app.HbLabel(:name => 'lowerLabel' ).HbTextItem( :text => '2 overlapping entry' )}
+ #Step 6: Remove all events in Calendar and check Calendar widget.
+ delete_calendar_events_via_UI
+ #Step 6 expected:
+ #- Reminder icon is not shown.
+ if (app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ end
+ #- 'No entries for next 7 days' is shown in widget content.
+ verify(){app.HbTextItem(:text => 'No entries for 7 days')}
+
+ #Step 7:Create an event with reminder on happens at next day in Calendar and check Calendar widget.
+ tomorrow_time_for_verification = create_calendar_event_via_calendar("not working",@day.to_i+1,@month.to_i,@year.to_i,@hour.to_i+2,@minute.to_i,0,1,0)
+ #Step 7 Expected:
+ #- Reminder icon is shown in right upper corner.
+ if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ end
+ #- The widget content is shown as two rows: first row shows the event date and second row shows the event title.
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'upperLabelShort' ).HbTextItem( :text => tomorrow_time_for_verification )}
+ #!!!!! Cannot run yet below
+ #verify(){app.HbLabel( :name => 'lowerLabel' ).HbTextItem( :text => 'Unnamed' )}
+ #postactions
+ delete_calendar_events_via_UI
+ end #test_calendar_widget_reminder_icon
+
################################################################################################################################################
###
-### User story related FuTe cases cases end. NFT cases start
+### User story related FuTe cases cases end. Other FuTe cases start
###
################################################################################################################################################
+ ##############################################################################################################################################
+ # test_calendar_widget_all_day_event_lasts_several_days
+ ##############################################################################################################################################
+ #
+ # Purpose of this test case is to verify, that all day event is shown correctly in calendar widget, when all day event lasts three days. That is, it is shown in first day, but not after that.
+ #
+ # Created at: 24.08.2010
+ # Created by: Jarno Mäkelä
+ # Reviewed by:
+ #
+ # === preconditions
+ # - Device is in Home screen.
+ # - three days lasting event in Calendar starting today, no other events at same time
+ # - Calendar widget is added to Home Screen.
+ #
+ # === params
+ # none
+ #
+ ############################################################################################################################################
+
+def _test_calendar_widget_all_day_event_lasts_several_days
+ #Start is missing
+ #Step 1: Check calendar widget
+ #Step 1 Expected:
+ #- All icons (widget icon and reminder icon) are shown correctly.
+ verify(){app.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'iconContainer' ).HbLabel( :name => 'iconLabel' )}
+ if not(app.test_object_exists?("HbFrameItem",{:frameGraphicsName => 'qtg_small_reminder'})) then
+ raise VerificationError ,"ERROR: There is not reminder icon in calendar widget, when it should be there", caller
+ end
+ #- Calendar widget shows rows: first row shows the event date and second row shows the name of all day event .
+ verify(){HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 0 ).HbTextItem( :text => all_day_event_time_for_verification )}
+ verify(){HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :__index => 1 ).HbTextItem( :text => 'Unnamed' )}
+ #Step 2: Change phone date for tomorrow.
+ clock_app = @sut.run(:name => "clock.exe")
+ clock_app.HbMarqueeItem(:text => 'Clock').tap
+ clock_app.HbTextItem( :text => 'Settings' ).tap
+ if clock_app.HbCheckBox( :name => 'networkTime' ).test_object_exists?("HbIconItem",{:iconName => 'qtg_small_selected'}) then
+ clock_app.HbCheckBox( :name => 'networkTime' ).tap
+ end
+ clock_app.HbPushButton( :name => 'dateItem' ).tap
+ tomorrow_date = calculate_date(@day.to_i+1,@month.to_i,@year.to_i, 0, 0)
+ puts "tomorrow_date:",tomorrow_date.to_s
+ if tomorrow_date[0..1].to_i < @day.to_i then
+ clock_app.HbDatePickerView(:__index => 0).HbAbstractItemContainer.HbDatePickerViewItem(:__index => 3).HbTextItem.gesture(:Up,0.5,53)
+ if tomorrow_date[3..4].to_i < @month.to_i then
+ clock_app.HbDatePickerView(:__index => 1).HbAbstractItemContainer.HbDatePickerViewItem(:__index => 2).HbTextItem.gesture(:Up,0.5,53)
+ clock_app.HbDatePickerView(:__index => 2).HbAbstractItemContainer.HbDatePickerViewItem(:__index => 2).HbTextItem.gesture(:Up,0.5,53)
+ else
+ clock_app.HbDatePickerView(:__index => 1).HbAbstractItemContainer.HbDatePickerViewItem(:__index => 2).HbTextItem.gesture(:Up,0.5,53)
+ end
+ else
+ clock_app.HbDatePickerView(:__index => 0).HbAbstractItemContainer.HbDatePickerViewItem(:__index => 3).HbTextItem.gesture(:Up,0.5,53)
+ end
+ #Step 2 expected: Date can be changed
+ clock_app.HbTextItem( :text => 'OK' ).tap
+ clock_app.close
+ #Step 3: Check Calendar widget.
+ #Step 3 Expected:
+ #- Calendar widget icon shows current date.
+ day_to_verify = tomorrow_date[0..1].to_i
+ month_in_view = case tomorrow_date[3..4]
+ when "01" then "January"
+ when "02" then "February"
+ when "03" then "March"
+ when "04" then "April"
+ when "05" then "May"
+ when "06" then "June"
+ when "07" then "July"
+ when "08" then "August"
+ when "09" then "September"
+ when "10" then "October"
+ when "11" then "November"
+ when "12" then "December"
+ end
+ verify(){app.HbTextItem(:text => day_to_verify)}
+ verify(){app.HbTextItem(:text => month_in_view)}
+ #- 'No entries for 7 days' is shown in widget content.
+ verify(){app.HbTextItem(:text => 'No entries for 7 days')}
+ #- Reminder icon in widget should not be shown.
+ if (app.test_object_exists?("HbIconItem",{:iconName => 'images/bell.PNG'})) then
+ raise VerificationError ,"ERROR: There is reminder icon in calendar widget, when it should not be there", caller
+ end
+ #set time back to use network time
+ clock_app = @sut.run(:name => "clock.exe")
+ clock_app.HbMarqueeItem(:text => 'Clock').tap
+ clock_app.HbTextItem( :text => 'Settings' ).tap
+ clock_app.HbCheckBox( :name => 'networkTime' ).tap
+ clock_app.close
+ delete_calendar_events_via_UI
+end # test_calendar_widget_all_day_event_lasts_several_days
+################################################################################################################################################
+###
+### Other FuTe cases cases end. NFT cases start
+###
+################################################################################################################################################
+
+ ##############################################################################################################################################
+ # Calendar widget - NFT - Measure memory consumption when adding seven calendar widgets to HS
+ ##############################################################################################################################################
+ #
+ # The purpose of this test case is to verify that calendar widget doesn't allocate excess amount of memory. Measure memory level before
+ # adding any widgets, then add seven calendar widgets and then measure the memory level. Compare the results.
+ #
+ # Created at: 26.08.2010
+ # Created by: Jarno Mäkelä
+ # Reviewed by:
+ #
+ # === preconditions
+ # - Device is in Home Screen.
+ # - No calendar widget in any of the homescreens
+ #
+ # === params
+ # none
+ #
+ ############################################################################################################################################
+
+ def test_calendar_widget_NFT_Measure_memory_consumption_when_adding_seven_calendar_widgets_to_HS
+ #preconditions:
+ #-Device is in Home Screen
+ app = @sut.application(:name => 'hsapplication')
+ verify(){app.HbIconItem(:iconName => 'qtg_mono_applications_all')}
+ # - No calendar widget in any of the homescreens
+ #This is done in initialize test, when starting test round
+ #start memory logging
+ app.log_mem({:interval => 10, :filePath => 'C:\Data', :append => true})
+ #app.log_gpu_mem({:interval => 1, :filePath => 'C:\Data'})
+ #@sut.log_mem({:interval => 1, :filePath => 'C:\Data'})
+ cal_widget_array = Array.new
+ i = 0
+ index = 0
+ drag_distance = 0
+ #app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ #sleep 10
+ #app.HbIconItem(:iconName => 'qtg_mono_back').tap
+ #do 7 times
+ 7.times do
+ #start memory logging again
+ #app.log_mem({:interval => 5, :filePath => 'C:\Data'})
+ #app.log_gpu_mem({:interval => 20, :filePath => 'C:\Data'})
+ #add calendar widget to home screen
+ app.HbIconItem(:iconName => 'qtg_mono_applications_all').tap
+ add_calendar_widget_to_homescreen(app,'AppListButton')
+ #app.HbIconItem(:iconName => 'qtg_mono_back').tap
+ #find the name of calendar widget
+ identificator = TestObjectIdentificator.new(:type => :HsWidgetHostVisual)
+ xml = app.HsPageVisual(:__index => 0).xml_data
+ element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
+ widget_string = String.new(element_set.to_s)
+ for k in 0..i
+ index = widget_string.index('calendarwidgetplugin')
+ widget_name = widget_string[index.to_i..index.to_i+22]
+ widget_string = widget_string[index.to_i+22..widget_string.length]
+ end
+ cal_widget_array[i]= widget_name
+ puts "calendar widget added"
+ puts "name of calendar widget is: " + cal_widget_array[i].to_s
+ calendar_widget_object = app.find(:name =>cal_widget_array[i])
+ calendar_widget_object.tap_down
+ calendar_widget_object = app.HbWidget( :name => 'controlLayer' ).find(:name => 'CalendarWidget')
+ calendar_widget_object.drag_to(130, 550-drag_distance.to_i)
+ i = i + 1
+ drag_distance = drag_distance + 70
+ #Stop memory logging
+ #mem_data_end = MobyBase::StateObject.new( app.stop_mem_log )
+ #count_end = mem_data_end.logData.attribute('entryCount').to_i
+ #gpu_data_end = MobyBase::StateObject.new( app.stop_gpu_log )
+ #count_end = gpu_data_end.logData.attribute('entryCount').to_i
+ #puts "count_end: "+count_end.to_s
+ #j = 0
+ #while j < count_end do
+ # #get heapsize
+ # #heap_size_end = mem_data_end.logEntry(:id => j.to_s).attribute('heapSize').to_i
+ # #puts "heap_size in end:" + heap_size_end.to_s
+ # total_mem_end = gpu_data_end.logEntry(:id => i.to_s).attribute('totalMem').to_i
+ # puts " total_mem in end:" + total_mem_end.to_s
+ # used_mem_end = gpu_data_end.logEntry(:id => i.to_s).attribute('usedMem').to_i
+ # puts " used_mem in end:" + used_mem_end.to_s
+ # free_mem_end = gpu_data_end.logEntry(:id => i.to_s).attribute('freeMem').to_i
+ # puts " free_mem in end:" + free_mem_end.to_s
+ # j += 1
+ #end
+ end
+
+ #Delete calendar widgets
+ for j in 0..cal_widget_array.length-1
+ app.HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).tap_down
+ #app.HsIdleWidget.HbWidget( :name => 'controlLayer' ).HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).drag_to_object(app.HsTrashBinWidget( :name => 'trashBin' ))
+ app.HsIdleWidget.HbWidget( :name => 'controlLayer' ).HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).drag_to(150,560 )
+ #app.HsWidgetHostVisual( :name => cal_widget_array[j] ).tap_down
+ #calendar_widget_object = app.find(:name =>cal_widget_array[j])
+ #calendar_widget_object.tap_down
+ #calendar_widget_object = app.HbWidget( :name => 'controlLayer' ).find(:name =>cal_widget_array[j])
+ #calendar_widget_object.drag_to_object(app.HsTrashBinWidget( :name => 'trashBin' ))
+ #app.HsIdleWidget.HbWidget( :name => 'controlLayer' ).HsWidgetHostVisual( :name => cal_widget_array[j] ).drag_to_object(app.HsTrashBinWidget( :name => 'trashBin' ))
+ sleep 1
+ end
+ sleep 30
+ #gpu_data = MobyBase::StateObject.new( app.stop_gpu_log )
+ mem_data = MobyBase::StateObject.new( app.stop_mem_log )
+ #sut_mem_data = MobyBase::StateObject.new( @sut.stop_mem_log )
+ #draw_graph(gpu_data, ['totalMem','usedMem','freeMem','processPrivateMem'], 'homescreen')
+ draw_graph(mem_data, ['heapSize'], 'homescreen')
+ # draw_graph(sut_mem_data, ['heapSize'], 'sut')
+ #!!! Cannot do yet
+ #compare start memory amount to end memory amount. This cannot do yet, since they won't match. maybe there are memory leaks in HS
+
+ end #test_calendar_widget_NFT_Measure_memory_consumption_when_adding_seven_calendar_widgets_to_HS
+
+ def _test_delete_calendar_widgets
+ #Lets check all widgets in first page
+ app = @sut.application(:name => 'hsapplication')
+ identificator = TestObjectIdentificator.new(:type => :HsWidgetHostVisual)
+ xml = app.HsPageVisual(:__index => 0).xml_data
+ element_set = xml.xpath( xpath = identificator.get_xpath_to_identify( xml ) )
+ widget_string = String.new(element_set.to_s)
+ #lets find all the calendarwidgetplugin-named calendar widgets
+ cal_widget_array = Array.new
+ i = 0
+ index = 0
+ while index != nil do
+ #search first occurence of calendar widget plugin
+ index = widget_string.index('calendarwidgetplugin')
+ if index != nil then
+ #save the name of calendar widget to array
+ cal_widget_array[i]=widget_string[index.to_i..index.to_i+22]
+ puts "cal_widget_array[i] = "+ cal_widget_array[i].to_s
+ i = i +1
+ #put the rest of the string to be checked another calendarwidgetplugin-name
+ widget_string = widget_string[index.to_i+22..widget_string.length]
+ end
+ end
+ #Delete calendar widgets
+ for j in 0..cal_widget_array.length-1
+ app.HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).tap_down
+ app.HsIdleWidget.HbWidget( :name => 'controlLayer' ).HsWidgetHostVisual( :name => cal_widget_array[j].to_s ).CalendarWidget.HbWidget( :name => 'CalendarWidget' ).HbWidget( :name => 'contentContainer' ).HbLabel( :name => 'middleLabel' ).HbTextItem( :text => 'No entries for 7 days' ).drag_to_object(app.HsTrashBinWidget( :name => 'trashBin' ))
+ #calendar_widget_object = app.find(:text => 'No entries for 7 days')
+ #calendar_widget_object = app.find(HsWidgetHostVisual( :name => 'calendarwidgetplugin:21' ) )
+ #calendar_widget_object.tap_down
+ #calendar_widget_object = app.HbWidget( :name => 'controlLayer' ).find(:name => 'CalendarWidget')
+ # calendar_widget_object = app.HbWidget( :name => 'controlLayer' ).find( :name => 'calendarwidgetplugin:21' )
+ #calendar_widget_object.drag_to_object(app.HsTrashBinWidget( :name => 'trashBin' ))
+ # sleep 1
+ end
+ end
+
##############################################################################################################################################
# Calendar widget - NFT - Switch between HS and application library 50 times
##############################################################################################################################################
@@ -1481,4 +1994,22 @@
#end #rescue
end #test_editor_view_new
+ private
+
+ def draw_graph(log_data, cells, app_name)
+ count = log_data.logData.attribute('entryCount').to_i
+ data_rows = Hash.new
+ cells.each{|title| data_rows[title] = Array.new}
+ i = 0
+ while i < count do
+ data_rows.each_key{ |key| data_rows[key].push(log_data.logEntry(:id => i.to_s).attribute(key).to_i)}
+ i += 1
+ end
+
+ g = Gruff::Line.new
+ g.title = log_data.logData.name
+ data_rows.each_key{ |key| g.data(key, data_rows[key]) }
+ g.write(app_name+"_"+log_data.logData.name+".png")
+ end
+
end # test class