pátek 28. listopadu 2014

Chrome Extension Quick Start Guide

Poplatek za developera 
5$ ~ 122,-Kč

Jednoduchý Chrome Extension se dá naprogramovat během 3 hodin.
Pokud by nákaldy na vývoj byly 1.000,- Pak při prodeji licence za 10 Kč by stačilo 100 prodaných kusů, aby se vrátily náklady.

Většinou se Extensions nabízejí zdarma jako podpora prodeje hlavního produktu.

Publish
Publikování vaší položky v Internetovém obchodě Chrome může trvat až 60 minut. V praxi se tam ale během 20-ti minut objeví.

Soubory je potřeba zabalit do ZIPu a nahrát přes panel vývojáře.
Častá chyba: pokud zabalíte do zipu *.CRX soubor tak Vám bude panel vývojáře hlásit, že nemůže najít manifest. Pokud přidáte do ZIPu i manifest tak Vám bude hlásit při instalaci, že nemůže najít javascripty atd.

Jak dlouho to trvá?
Za cca 4 hodiny se dá udělat prototyp, který bude dělat zhruba to co jste zamýšleli. Pokud to není mega složitá fíčurka

Panel vývojáře
https://chrome.google.com/webstore/developer/dashboard?hl=cs

Ikona

  • 128x128px

Snímek obrazovky:

  • 1280x800 nebo 640x400px

Video na Youtube
Propagační dlaždice: 

  • 440x280px 
  • 920x680px
  • 1400x560px

Jak na více jazyků ?
https://developer.chrome.com/webstore/i18n?hl=cs

InstallPage
http://stackoverflow.com/questions/5745822/open-a-help-page-after-chrome-extension-is-installed-first-time

Quikstart 
https://developer.chrome.com/extensions/getstarted

Samples 
https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples
https://developer.chrome.com/extensions/samples

Tutorial
http://markashleybell.com/building-a-simple-google-chrome-extension.html

Context menu
http://tomoprogramming.blogspot.cz/2013/08/simple-tutorial-for-chrome-extension.html

https://developer.chrome.com/extensions/contextMenus

AddButton on Page
http://stackoverflow.com/questions/14068879/modify-html-of-loaded-pages-using-chrome-extensions

Match
https://developer.chrome.com/extensions/match_patterns

jQuery
Je důležité dodržet pořadí. Pokud pořadí scriptů prohodíte, nebude mít Váš script při jeho spuštění ještě dostupnou knihovnu jQuery.

"content_scripts": [

    {

      "matches": ["<all_urls>"],

       "js": ["jquery-2.1.1.js", "myscript.js"]

    }



],

http://carl-topham.com/theblog/post/creating-chrome-extension-uses-jquery-manipulate-dom-page/

Manifest Icons
https://developer.chrome.com/extensions/manifest/icons

Background Page
https://developer.chrome.com/extensions/background_pages

Event Page
https://developer.chrome.com/extensions/event_pages

Ostatní
http://stackoverflow.com/questions/5797661/replace-text-in-website-with-chrome-content-script-extension

https://developer.chrome.com/extensions/content_scripts

středa 26. listopadu 2014

Zachycení kláves CTRL + S ve webové stránce

<!doctype html>
<head>
<title>CTRL + S</title>
<script src="./jquery-2.1.1.js"></script>
</head>
<body>
<script>
$(window).keypress(function(event) {
    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
    alert("Ctrl-S pressed");
    event.preventDefault();
    return false;
}); </script> </body> </html>

Zdroj: 
http://stackoverflow.com/questions/93695/best-cross-browser-method-to-capture-ctrls-with-jquery

středa 5. listopadu 2014

nUnit - DataDriven Test

  1. Do testovací metody doplníme parametry.
  2. Metodu odekorujeme namísto atributu Test atributem TestCase který obsahuje parametry pro jedem testovací scénář.
  3. V metodě použijeme jednotlivé parametry jako vstupní parametry testu nebo jako očekávané výsledky testu.

[TestCase(123, "FVBAN", "BP14", "17Ř00U", Payment.PaymentMethodType.bank, "BAN")]
        [TestCase(-123, "BANFP", "BV14", "17Ř00P", Payment.PaymentMethodType.bank, "BAN")]
        [TestCase(123, "FVBAN", "PP", "17Ř00U", Payment.PaymentMethodType.payU, "PAYU")]
        [TestCase(-123, "POPLBAN", "PV", "17Ř00P", Payment.PaymentMethodType.payU, "PAYU")]
        public void Map_Payment_To_BankDokl(
            int amount,
            string predkont, 
            string rada, 
            string cleneni, 
            Payment.PaymentMethodType method, 
            string methodCode)
        {
            // Arange           
            var date = DateTime.Parse("2014-04-11");

            var payment = new Payment()
            {
                Amount = amount,
                ConstantSymbol = "12345",
                CounterpartAccountBank = "0100",
                CounterpartAccountNumber = "1212121212",
                Date = date,
                Description = "Karel nese čaj",
                PaymentMethod = method,
                SpecificSymbol = "123456999",
                VariableSymbol = "999999",
            };

            var bankDokl = new BankDokl();

            // Act
            AutoMapper.Mapper.Map(payment, bankDokl);

            // Assert
            Assert.AreEqual(Math.Abs(payment.Amount), bankDokl.Amount);
            Assert.AreEqual(payment.ConstantSymbol, bankDokl.ConstantSymbol);
            Assert.AreEqual(payment.CounterpartAccountNumber, bankDokl.Ucet.Ucet);
            Assert.AreEqual(payment.CounterpartAccountBank, bankDokl.Ucet.BKod);

            Assert.AreEqual(payment.Date, bankDokl.DatPlat);
            Assert.AreEqual(payment.Description, bankDokl.Note);
            Assert.AreEqual(methodCode, bankDokl.Ucet.Zkrat);
            Assert.AreEqual(payment.SpecificSymbol, bankDokl.SpecificSymbol);
            Assert.AreEqual(payment.VariableSymbol, bankDokl.VariableSymbol);

            Assert.AreEqual(rada, bankDokl.DRada);
            Assert.AreEqual(cleneni, bankDokl.Cleneni);
            Assert.AreEqual(predkont, bankDokl.PrKont);
        }

Zdroj:
http://www.nunit.org/index.php?p=testCase&r=2.5